Data publikacji: Oct 10, 2009 8:47:9 AM
W przypadku gdy wykonaliśmy:
ssh server (włączony ssh forwarding)
screen
...
Ctrl-A Ctrl-D
exit
A następnie:
ssh server (włączony ssh forwaring)
screen -D -r
Można zauważyć, że nie działa ssh forwarding. Powód? W zmiennych środowiskowych jest odnotowany stary SSH agent (patrz SSH_AUTH_SOCK). Rozwiązanie polega na dodaniu takiego skryptu do .bashrc. Dba on aby SSH_AUTH_SOCK zawsze wskazywało na ten sam plik, który w razie konieczności jest podmieniany (tu mamy przypadek symlinka, który jest aktualizowany przy każdym uruchomieniu .bashrc).
mkdir -p ~/.ssh
if [ ! -z "$SSH_AUTH_SOCK" ]; then
ssh_agent=${HOME}/.ssh/ssh-agent
if [ "$TERM" = "screen" ]; then
SSH_AUTH_SOCK=${ssh_agent}; export SSH_AUTH_SOCK
else
ln -snf ${SSH_AUTH_SOCK} ${ssh_agent}
fi
fi