I appreciate the whole ssh connection process is hairy as ****, and thinking I've got a proper fix after a couple of hours poking about looking at a single use case is naive, but the removal of one line gets the behaviour I expect: if either the password or verification code are incorrect, restart the authentication process diff --git a/src/sshmasterconnection.cpp b/src/sshmasterconnection.cpp index 667e0ef..34045de 100644 --- a/src/sshmasterconnection.cpp +++ b/src/sshmasterconnection.cpp @@ -1127,7 +1127,7 @@ bool SshMasterConnection::userChallengeAuth() if (has_challenge_auth_code_prompt) { x2goDebug<<"Verification code request"<<endl; - challengeAuthPasswordAccepted=true; + // challengeAuthPasswordAccepted=true; if(challengeAuthVerificationCode == QString::null) { keyPhraseReady=false; This also works in the case of using an ssh proxy server with google-authenticator. Cheers Toby