The branch, build-baikal has been updated via 6f9ead7cf9184799f0b6ae9ff1efd0c7b879d0c6 (commit) from 3aa82279301216509425bdd10bd8ef41c3f795cb (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: debian/changelog | 1 + sshmasterconnection.cpp | 26 +++++++++++++++++++++----- 2 files changed, 22 insertions(+), 5 deletions(-) The diff of changes is: diff --git a/debian/changelog b/debian/changelog index 2d010f7..9ddf90f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -62,6 +62,7 @@ x2goclient (4.0.1.2-0x2go2) UNRELEASED; urgency=low on Linux and Mac and plink/pscp on Windows. - Support for ChallengeResponseAuthentication (Google Authenticator) - Setting main window focus on mac (Fixes: #139). + - Additional check if authentication with GSSApi successfull [ Heinrich Schuchardt ] * New upstream version (4.0.1.2): diff --git a/sshmasterconnection.cpp b/sshmasterconnection.cpp index d705f7c..37673ea 100644 --- a/sshmasterconnection.cpp +++ b/sshmasterconnection.cpp @@ -32,6 +32,8 @@ #endif #include <math.h> +#include <QUuid> + #ifndef Q_OS_WIN #include <sys/socket.h> /* for socket(), connect(), send(), and recv() */ #include <arpa/inet.h> /* for sockaddr_in and inet_addr() */ @@ -1106,12 +1108,17 @@ bool SshMasterConnection::userAuthKrb() QProcess ssh; QString sshCmd; + QUuid uuid = QUuid::createUuid(); + QString uuidStr = uuid.toString().mid(1, 36).toLower(); + + QString shcmd = " echo X2GODATABEGIN:" + uuidStr + "; whoami; echo X2GODATAEND:" + uuidStr ; + #ifdef Q_OS_WIN sshCmd="plink -batch "+user+"@"+host+" -P "+ - QString::number(port)+ " whoami"; + QString::number(port)+ shcmd; #else sshCmd="ssh -o GSSApiAuthentication=yes "+user+"@"+host+" -p "+ - QString::number(port)+ " -o PasswordAuthentication=no whoami"; + QString::number(port)+ " -o PasswordAuthentication=no "+shcmd; #endif #ifdef DEBUG @@ -1132,10 +1139,12 @@ bool SshMasterConnection::userAuthKrb() if (!ssh.waitForFinished(20000)) { sshProcErrString=ssh.errorString(); + authErrors<<tr("Failed to start SSH Client. Please check your installation and GSSApi configuration"); authErrors<<sshProcErrString; #ifdef DEBUG x2goDebug<<"ssh not finished:" <<sshProcErrString<<endl; #endif + return false; } QString outp=ssh.readAllStandardOutput(); @@ -1146,10 +1155,17 @@ bool SshMasterConnection::userAuthKrb() x2goDebug<<"stderr - "<<err<<endl; x2goDebug<<"code - "<<ssh.exitCode()<<", status - "<<ssh.exitStatus()<<endl; #endif - if (ssh.exitCode() == 0 && ssh.exitStatus() == 0) + + QString begin_marker = "X2GODATABEGIN:"+uuidStr+"\n"; + QString end_marker = "X2GODATAEND:"+uuidStr+"\n"; + int output_begin=outp.indexOf(begin_marker) + begin_marker.length(); + int output_end=outp.indexOf(end_marker); + outp = outp.mid(output_begin, output_end-output_begin); + outp.replace("\n",""); + + if (ssh.exitCode() == 0 && ssh.exitStatus() == 0 && outp== user) return true; - sshProcErrString=err; - authErrors<<sshProcErrString; + authErrors<<tr("Check your GSSApi configuration or choose another authentication method"); return false; } hooks/post-receive -- x2goclient.git (X2Go Client) This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "x2goclient.git" (X2Go Client).