[X2Go-Commits] [x2goserver] 01/01: Make SSH agent forwarding work after having reconnected via SSH and having resumed a session. (Fixes: #672). Thanks to Robert Siemer for coming up with that idea.

git-admin at x2go.org git-admin at x2go.org
Thu Nov 13 12:09:58 CET 2014


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch master
in repository x2goserver.

commit 96edc2de33c98c2b5db32d7b44dcb73bded5a179
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date:   Thu Nov 13 12:07:22 2014 +0100

    Make SSH agent forwarding work after having reconnected via SSH and having resumed a session. (Fixes: #672). Thanks to Robert Siemer for coming up with that idea.
    
    Conflicts (resolved by Mike Gabriel):
    	x2goserver/bin/x2goresume-session
    	x2goserver/bin/x2gosuspend-session
---
 debian/changelog                     |    3 +++
 x2goserver/bin/x2goresume-session    |    8 ++++++++
 x2goserver/bin/x2goruncommand        |    9 +++++++++
 x2goserver/bin/x2gosuspend-session   |    8 ++++++++
 x2goserver/bin/x2goterminate-session |    8 ++++++++
 5 files changed, 36 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index 2e3131d..0988583 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -179,6 +179,9 @@ x2goserver (4.0.1.19-0x2go1) UNRELEASED; urgency=medium
     - Also enforce /bin/sh as shell in su command in x2goprint.
     - README.i18n: Add file that explains the translation workflow for
       this package. Thanks to Mark Pedersen-Cook for drafting this file.
+    - Make SSH agent forwarding work after having reconnected via SSH and
+      having resumed a session. (Fixes: #672). Thanks to Robert Siemer for coming
+      up with that idea.
   * debian/control:
     + Add D (x2goserver): libfile-which-perl.
   * debian/x2goserver.docs:
diff --git a/x2goserver/bin/x2goresume-session b/x2goserver/bin/x2goresume-session
index b4930d9..dd83bcb 100755
--- a/x2goserver/bin/x2goresume-session
+++ b/x2goserver/bin/x2goresume-session
@@ -42,6 +42,14 @@ X2GO_ROOT="${HOME}/.x2go"
 X2GO_RESIZE=0
 X2GO_FULLSCREEN=0
 
+# refresh up ssh-agent-forwarding socket file symlink
+X2GOSSH_AUTH_SOCK="$X2GO_ROOT/C-$SESSION_NAME/ssh-agent.PID"
+if [ -L "$X2GOSSH_AUTH_SOCK" ]; then
+	rm -f "$X2GOSSH_AUTH_SOCK"
+fi
+if [ -S "$SSH_AUTH_SOCK" ]; then
+	ln -sf "$SSH_AUTH_SOCK" "$X2GOSSH_AUTH_SOCK"
+fi
 
 STATE=`$X2GO_LIB_PATH/x2gogetagentstate "$SESSION_NAME"`
 
diff --git a/x2goserver/bin/x2goruncommand b/x2goserver/bin/x2goruncommand
index 55d7f38..525a3f0 100755
--- a/x2goserver/bin/x2goruncommand
+++ b/x2goserver/bin/x2goruncommand
@@ -53,6 +53,15 @@ export QT_GRAPHICSSYSTEM="native"
 
 IMEXIT="false"
 
+# symlink to SSH_AUTH_SOCKET (ssh agent forwarding) so that we
+# can survive session suspension / resumption...
+X2GOSSH_AUTH_SOCK="$X2GO_ROOT/C-$X2GO_SESSION/ssh-agent.PID"
+if [ -S "$SSH_AUTH_SOCK" ]; then
+	ln -sf "$SSH_AUTH_SOCK" "$X2GOSSH_AUTH_SOCK"
+fi
+export SSH_AUTH_SOCK="$X2GOSSH_AUTH_SOCK"
+
+
 NX_XINERAMA_LIBS="$(x2gopath xinerama)"
 NX_LIBS="$(x2gopath nx-x11)"
 test -n "$LD_LIBRARY_PATH" && \
diff --git a/x2goserver/bin/x2gosuspend-session b/x2goserver/bin/x2gosuspend-session
index 9f7f61f..0b9d194 100755
--- a/x2goserver/bin/x2gosuspend-session
+++ b/x2goserver/bin/x2gosuspend-session
@@ -35,6 +35,8 @@ if [ -z $SESSION_NAME ]; then
 	usage
 fi
 
+X2GO_ROOT="${HOME}/.x2go"
+
 X2GO_LIB_PATH="$(x2gopath libexec)";
 
 $X2GO_LIB_PATH/x2gosyslog "$0" "info" "$(basename $0) called with options: $@"
@@ -80,3 +82,9 @@ then
 else
 	$X2GO_LIB_PATH/x2gosyslog "$0" "notice" "session with ID $SESSION_NAME is not in running state"
 fi
+
+# disable ssh-agent-forwarding socket file symlink
+X2GOSSH_AUTH_SOCK="$X2GO_ROOT/C-$SESSION_NAME/ssh-agent.PID"
+if [ -L "$X2GOSSH_AUTH_SOCK" ]; then
+	rm -f "$X2GOSSH_AUTH_SOCK"
+fi
diff --git a/x2goserver/bin/x2goterminate-session b/x2goserver/bin/x2goterminate-session
index 64d44f8..c22f1e2 100755
--- a/x2goserver/bin/x2goterminate-session
+++ b/x2goserver/bin/x2goterminate-session
@@ -35,6 +35,8 @@ if [ -z $SESSION_NAME ]; then
         usage
 fi
 
+X2GO_ROOT="${HOME}/.x2go"
+
 X2GO_LIB_PATH="$(x2gopath libexec)";
 
 $X2GO_LIB_PATH/x2gosyslog "$0" "info" "$(basename $0) called with options: $@"
@@ -66,4 +68,10 @@ else
 	x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions "$SESSION_NAME" fail-terminate || true
 fi
 
+# disable ssh-agent-forwarding socket file symlink
+X2GOSSH_AUTH_SOCK="$X2GO_ROOT/C-$SESSION_NAME/ssh-agent.PID"
+if [ -L "$X2GOSSH_AUTH_SOCK" ]; then
+	rm -f "$X2GOSSH_AUTH_SOCK"
+fi
+
 $X2GO_LIB_PATH/x2gochangestatus 'F' "$SESSION_NAME"  > /dev/null

--
Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/x2goserver.git


More information about the x2go-commits mailing list