SSH-Agent

ssh à Jean

Connexion avec ssh-agent pour Connexion SSH, passphrase demandée qu'une seule fois

Lister les clefs connues

$ ssh-add -l
Could not open a connection to your authentication agent.

Communication avec l'agent impossible ⇒ soit il n'est pas chargé, soit il y a un problème.

Pour forcer sa fermeture

$ ssh-agent -k
SSH_AGENT_PID not set, cannot kill agent

Activation de l'agent ssh

$ eval $(ssh-agent -s)
Agent pid 10449

Pour lister les clefs chargées

$ ssh-add -l
The agent has no identities.

Pour charger la clef par défaut

$ ssh-add
Enter passphrase for /home/jibe/.ssh/id_dsa:
Identity added: /home/jibe/.ssh/id_dsa (/home/jibe/.ssh/id_dsa)

!! Plus aucune passphrase vous sera demandé pour vous connecter !

Plus vérouiller votre ssh-agent (plus de connexion sans passphrase)

$ ssh-add -x
Enter lock password:
Again:
Agent locked.

Pour déverrouiller

$ ssh-add -X
Enter lock password:
Agent unlocked.

On regardes les clefs chargées

$ ssh-add -l
1024 c7:7e:ab:f1:f9:ed:a4:d0:81:ee:6b:d1:3f:b4:4f:ca /home/jibe/.ssh/id_dsa (DSA)

Ajout d'une 2em clef :

$ ssh-add ~/.ssh/id_rsa_clef2
Identity added: /home/jibe/.ssh/id_rsa_clef2 (rsa w/o comment)

On regarde de nouveau les clefs chargées

$ ssh-add -l
1024 c7:7e:ab:f1:f9:ed:a4:d0:81:ee:6b:d1:3f:b4:4f:ca /home/jibe/.ssh/id_dsa (DSA)
768 c1:8d:5a:00:23:87:c7:2f:8a:e3:9d:88:15:9d:eb:4c rsa w/o comment (RSA)

Faire oublier toutes les clefs

$ ssh-add -D
All identities removed.

Fermer ssh-agent

$ eval $(ssh-agent -k)
Agent pid 10449 killed

Variables SSH_AGENT_PID et SSH_AUTH_SOCK pas exportées

~/.bashrc

if [[ -z $SSH_AGENT_PID ]] then SSH_AGENT_PID="$(pgrep -n ssh-agent)" SSH_AUTH_SOCK="$(ls -1rt /tmp/ssh-*/agent.* |tail -1)" export SSH_AGENT_PID export SSH_AUTH_SOCK fi

On tente de lister les clefs connues

$ ssh-add -l
Could not open a connection to your authentication agent

Pour ne saisir qu'une seule fois la passe-phrase à l'ouverture de la session console

~/.bashrc

ssh-add -l >/dev/null if [[ $? -eq 1 ]] then ssh-add fi

Exemple complète de conf

~/.bash_rc

pgrep ssh-agent >/dev/null if [[ $? -eq 1 ]] then eval $(ssh-agent -s) fi if [[ -z $SSH_AGENT_PID ]] then SSH_AGENT_PID="$(pgrep -n ssh-agent)" SSH_AUTH_SOCK="$(ls -1rt /tmp/ssh-*/agent.* |tail -1)" export SSH_AGENT_PID export SSH_AUTH_SOCK fi ssh-add -l >/dev/null if [[ $? -eq 1 ]] then ssh-add fi