myshellconfig/myshell_load_x2go_tokenforward
2023-01-09 08:21:39 +01:00

57 lines
2 KiB
Plaintext

# --- 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
logdebug "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"
# ln -s $(echo $SSH_AUTH_SOCK) ~/.ssh/agents/socket-bmi-desktopschuer4
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:1:2}'" && \
$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 SSH_AUTH_SOCK=$MIGHTBEOURAGENT"
fi
fi
# ---- END X2Go SSH forwarding workaround ----
#https://www.johntobin.ie/blog/updating_environment_variables_from_tmux/