Astuce pour récupérer le lien vers l'agent SSH


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