O problema estava no aplicativo screen
. Ele foi iniciado pelo PuTTY no remove host com screen -d -RR
(Connection / SSH / Remote Command). Eu encontrei a solução aqui e a modifiquei ligeiramente:
~ / .bashrc:
# Correct screen and tmux behavior with ssh-agent
parent="$(ps -o comm --no-headers $PPID)"
case $parent in
sshd)
keep_vars="SSH_CLIENT SSH_TTY SSH_AUTH_SOCK SSH_CONNECTION DISPLAY XAUTHORITY"
touch $HOME/.ssh/keep_vars
chmod 600 $HOME/.ssh/keep_vars
for i in $keep_vars; do
(eval echo export $i=\\'\$$i\\')
done > $HOME/.ssh/keep_vars
;;
screen|tmux)
source $HOME/.ssh/keep_vars
;;
esac
# This command must be run from shell within detached and re-attached screen session
# to interact with ssh-agent properly
alias fixssh="source $HOME/.ssh/keep_vars"
alias ssh="source $HOME/.ssh/keep_vars; ssh"
A cada tomo que eu conecto, as variáveis do agente ssh são armazenadas em $HOME/.ssh/keep_vars
Toda nova janela aberta na tela pode se conectar imediatamente a outras máquinas com a minha chave - ela recebe as variáveis apropriadas da tela. Em janelas antigas, preciso digitar fixssh
e, em seguida, tentar conectar-me.