# --- BEGIN X2Go SSH forwarding workaround --- # Part that runs in regular SSH session # check we have an agent socket and # check we have an ~/.x2go directory if [ -n "$SSH_AUTH_SOCK" ] && \ [ -d ~/.x2go ] && \ [ -z "$X2GO_AGENT_PID" ] ; then # touch the output file and set permissions # (as tight as possible) touch ~/.x2go/agentsocket chmod 600 ~/.x2go/agentsocket chown $USER ~/.x2go/agentsocket # write file name of agent socket into file loginfo "old agentsock $( cat ~/.x2go/agentsocket)" #echo $SSH_AUTH_SOCK > ~/.x2go/agentsocket rm ~/.x2go/agentsocket ln -s $SSH_AUTH_SOCK ~/.x2go/agentsocket loginfo "write SSH_AUTH_SOCK (${SSH_AUTH_SOCK}) to ~/.x2go/agentsocket" fi # Part that runs in X2Go session # check we're on an X2GoServer (x2golistsessions is in path), # check we have a DISPLAY set, and # check our client DISPLAY and SSH client IP correspond to # a running X2Go session and # check ~/.x2go/agentsocket is a regular file if which x2golistsessions >/dev/null && \ [ -n "$DISPLAY" ] && \ [ -n "$(x2golistsessions | \ awk -F '|' '":"$3 == "'$DISPLAY'" && \ $5 == "R" && \ $8 == "'$(echo $SSH_CLIENT | \ awk '{print $1}')'" { print $3 }')" ] && \ [ -f ~/.x2go/agentsocket ] ; then # all checks passed, read content of file # (might still contain stale agent socket or garbage MIGHTBEOURAGENT=$(cat ~/.x2go/agentsocket) # check if it corresponds to an existing socket logdebug "MIGHTBEOURAGENT: $MIGHTBEOURAGENT" if [ -S "$MIGHTBEOURAGENT" ]; then # export path to agent socket export SSH_AUTH_SOCK=$MIGHTBEOURAGENT logdebug "export it" fi fi # ---- END X2Go SSH forwarding workaround ---- #https://www.johntobin.ie/blog/updating_environment_variables_from_tmux/