Si on lance un émulateur de terminal qui n'est pas descendant du
processus ssh-add, il n'héritera pas des variables d'environnement lui
permettant de contacter le processus ssh-agent local. Il lui manque ces
variables :
SSH_AGENT_PID=21455
SSH_AUTH_SOCK=/tmp/ssh-KkbhD21454/agent.21454
SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
On peut les reconstruire localement avec le script suivant:
$ more ~/.ssh-agent.sh
export PATH=/bin:/sbin:/usr/bin:/usr/sbin
if [ -z $USER ]; then
export USER=`whoami`
fi
if [ -z $SSH_AGENT_PID ]; then
export SSH_AGENT_PID=`ps --user $USER | grep ssh-agent |\
grep -v grep | head -1 | awk '{print $1}'`
fi
if [ $SSH_AGENT_PID ]; then
export SSH_AUTH_SOCK=`sudo netstat -xnlp |\
grep ${SSH_AGENT_PID}/ssh-agent | awk '{print $10}'`
count=`ssh-add -l | wc | awk '{print $1}'`
if [ $count -ne 2 ]; then
unset SSH_AGENT_PID
unset SSH_AUTH_SOCK
fi
fi