This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository x2goclient. commit 9b14b3ad8d8fe3bea57906933b725991843744c0 Author: Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> Date: Fri Jan 24 13:15:37 2014 +0100 Fix authentication on SSH Broker with key + passphrase. --- debian/changelog | 1 + httpbrokerclient.cpp | 22 +++++++++++++++++----- httpbrokerclient.h | 2 +- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/debian/changelog b/debian/changelog index 6912f5e..4534fd4 100644 --- a/debian/changelog +++ b/debian/changelog @@ -4,6 +4,7 @@ x2goclient (4.0.2.0-0x2go1) UNRELEASED; urgency=low * New upstream version (4.0.2.0): - Revrite SSH Classes to support libssh fix. - Add Class HelpDialog to show options in scroll area. + - Fix authentication on SSH Broker with key + passphrase. -- Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Wed, 22 Jan 2014 09:20:08 +0100 diff --git a/httpbrokerclient.cpp b/httpbrokerclient.cpp index d238d82..4ca8e5d 100644 --- a/httpbrokerclient.cpp +++ b/httpbrokerclient.cpp @@ -93,13 +93,13 @@ void HttpBrokerClient::createSshConnection() QUrl lurl ( config->brokerurl ); sshConnection=new SshMasterConnection (this, lurl.host(), lurl.port(22),false, config->brokerUser, config->brokerPass,config->brokerSshKey,config->brokerAutologin, - config->brokerKrbLogin, false); + config->brokerKrbLogin, false); connect ( sshConnection, SIGNAL ( connectionOk(QString)), this, SLOT ( slotSshConnectionOk() ) ); connect ( sshConnection, SIGNAL ( serverAuthError ( int,QString, SshMasterConnection* ) ),this, SLOT ( slotSshServerAuthError ( int,QString, SshMasterConnection* ) ) ); - connect ( sshConnection, SIGNAL ( needPassPhrase(SshMasterConnection*)),this, - SLOT ( slotSshServerAuthPassphrase(SshMasterConnection*)) ); + connect ( sshConnection, SIGNAL ( needPassPhrase(SshMasterConnection*, bool)),this, + SLOT ( slotSshServerAuthPassphrase(SshMasterConnection*, bool)) ); connect ( sshConnection, SIGNAL ( userAuthError ( QString ) ),this,SLOT ( slotSshUserAuthError ( QString ) ) ); connect ( sshConnection, SIGNAL ( connectionError(QString,QString)), this, SLOT ( slotSshConnectionError ( QString,QString ) ) ); @@ -199,11 +199,23 @@ void HttpBrokerClient::slotSshServerAuthError(int error, QString sshMessage, Ssh } -void HttpBrokerClient::slotSshServerAuthPassphrase(SshMasterConnection* connection) +void HttpBrokerClient::slotSshServerAuthPassphrase(SshMasterConnection* connection, bool verificationCode) { bool ok; + QString message; + + if(verificationCode) + { + message=tr("Verification code:"); + } + else + { + message=tr("Enter passphrase to decrypt a key"); + } + + QString phrase=QInputDialog::getText(0,connection->getUser()+"@"+connection->getHost()+":"+QString::number(connection->getPort()), - tr("Enter passphrase to decrypt a key"),QLineEdit::Password,QString::null, &ok); + message, QLineEdit::Password,QString::null, &ok); if(!ok) { phrase=QString::null; diff --git a/httpbrokerclient.h b/httpbrokerclient.h index f821fb0..4ea4a3d 100644 --- a/httpbrokerclient.h +++ b/httpbrokerclient.h @@ -67,7 +67,7 @@ private slots: QString getHexVal ( const QByteArray& ba ); void slotSshConnectionError ( QString message, QString lastSessionError ); void slotSshServerAuthError ( int error, QString sshMessage, SshMasterConnection* connection ); - void slotSshServerAuthPassphrase ( SshMasterConnection* connection ); + void slotSshServerAuthPassphrase ( SshMasterConnection* connection, bool verificationCode=false ); void slotSshUserAuthError ( QString error ); void slotSshConnectionOk(); void slotListSessions ( bool success, QString answer, int pid); -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/x2goclient.git