Gestion des clés de SSH

La suite SSH contient deux programmes permettant de gérer les clés d'authentification, permettant à l'utilisateur de se connecter sans saisir de mot de passe ou de phrase de passe. Ces programmes sont ssh-agent et ssh-add.

ssh-agent

Dans la page de manuel de ssh-agent, nous pouvons lire : « ssh-agent2 est un programme pour conserver des clés privées d'authentification. L'idée est que ssh-agent2 est démarré au début d'une session X-Window ou d'une session de connexion terminal, et que tous les autres programmes ou fenêtres sont lancés en tant que processus fils de ssh-agent2 (la commande lance X ou l'interpréteur de commande interactif de l'utilisateur). Les programmes lancés par l'agent héritent de la connexion à l'agent, et l'agent est automatiquement utilisé pour l'authentification à clé publique lors de connexions à d'autres machines utilisant ssh. »

Il y a deux manières d'utiliser ssh-agent selon que vous utilisiez xdm ou non. Dans le premier cas, il vous faudra modifier votre fichier .xsession de votre répertoire utilisateur ($HOME). Deux procédures pour y arriver : copiez .xsession en .xsession.toto et mettez uniquement la ligne qui suit dans .xsession :
exec ssh-agent ./.xsession-toto
Vous pouvez aussi modifier .xsession et chercher chaque ligne contenant l'expression « exec programme ». Modifiez ces lignes pour qu'elles apparaissent sous la forme « exec ssh-agent programme »

Quittez votre session X et redémarrez-la. ssh-agent démarrera la session X en tant que processus fils unique et attendra les clés SSH à ajouter à sa base de données.

Si xdm ne tourne pas sur votre machine, la procédure est plus simple car vous n'aurez qu'à lancer votre session X en utilisant la commande :
ssh-agent startx
Ainsi, ssh-agent s'exécutera correctement.

ssh-add

Dès que ssh-agent est en place, vous pouvez ajouter des identités à sa base de données en utilisant la commande ssh-add. Vous ne pouvez ajouter ces identités que depuis des processus fils d'un ancêtre ssh-agent, sinon le message d'erreur suivant vous sera affiché : Failed to connect to authentication agent - agent not running ? L'utilisation de ssh-add est simple : lancez la commande suivante :
ssh-add
ssh-add balaiera le fichier $HOME/.ssh2/identification qui contient les noms des clés privées utilisées pour l'authentification. Si ce fichier n'existe pas, le nom standard de la clé privée est utilisé (à savoir : $HOME/.ssh2/id_dsa_1024_a.) Si une clé publique requiert une phrase de passe, ssh-add la demande à l'utilisateur : Adding identity: /home/matt/.ssh2/id_dsa_1024_a.pub Need passphrase for /home/matt/.ssh2/id_dsa_1024_a (..) Enter passphrase: Vous pouvez obtenir la liste de toutes les identités endossées par l'agent en utilisant la commande ssh-add -l : Listing identities. The authorization agent has one key: id_dsa_1024_a: 1024-bit dsa, (...)