Introduction

Caractéristiques

Configuration du client SSH

Agent SSH

Il résoud le problème du dévérouillage répété de la clé privée localement, et permet ensuite de rebondir de machines en machines SANS changer de clé privée.

Utilisation avec l'agent

Rien à faire ou presque, ssh contacte l'agent de manière transparente, et s'il trouve la bonne clé privée, il l'utilise (et n'a pas besoin de demander la passphrase à l'utilisateur).

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

Conclusions

Références