Authentification du client par ssh

Lors de la section "connexion à distance", la clé stoquée était la clé publique du serveur ssh distant, or il existe des situations où le client peut avoir aussi besoin de s'authentifier avec une paire de clé asymétrique. Par exemples :

1. Se créer un joli couple de clé publique/clé secrète

Se créer un joli couple de clé publique/clé secrète que l’on chiffrera avec la belle phrase secrète demandée.
ssh-keygen -t dsa
A l'aide du man de ssh-keygen expliquer à quoi correspond cette option.

Executez la commande et regardez le contenu du répertoire ~/.ssh/. Consultez le contenu des nouveaux fichiers et identifiez le fichier contenant la clé privée de celui contenant la clé publique.

Afin de permettre les connexions ssh depuis une machine A vers une machine B on mettra le contenu du ~/.ssh/id_dsa.pub de A dans le contenu ~/.ssh/authorized_keys de B.
Ainsi les connexions des utilisateurs possédant le ~/.ssh/id_dsa correspondant pourront se connecter à B.
Pour que sshd soit content dans sa grande paranoïa altruiste et vous laisse vous connecter, faire un
chmod go-rw ~/.ssh/authorized_keys
Vérifiez que cela fonctionne depuis A avec un ssh B qui va vous demander la phrase secrète de la clé DSA et non plus le mot de passe UNIX (copiez avez scp...) .

2. Un usage intensif de ce mode d'authentification ?

Si on fait une utilisation intense du réseau (connexion à plein de machines en continu, mises à jour avec des serveurs CVS via ssh, utilisation d’ordinateurs parallèles avec du MPI sur ssh, etc.), on est amené à taper sans arrêt sa (ses) phrase(s) secrète(s), ce qui va rebuter n’importe quel(le) informaticien(ne). C’est pour cela qu’a été créé le serveur ssh-agent gardien suprême des clés qui, une fois lancé et instruit des clés, va répondre à votre place.
Lancer dans une fenêtre un eval ‘ssh-agent‘ qui a pour effet de lancer ssh-agent d’une part et d’initialiser des variables du shell qui donneront aux futurs ssh le moyen de se connecter à l’agent d’authentification.

Il s'agit d'éxecuter l'export des variables communiquées. Faites un copier-coller dans le terminal.

Puis on utilise ssh-add pour rajouter des clés secrètes dans l’agent. Sans paramètre supplémentaire c’est la clé DSA qui sera rajoutée par défaut avec :
ssh-add

Connectez vous sur un autre terminal. Copiez y aussi les variables fournies par ssh-agent, et essayez de vous connecter sans mot de passe depuis A vers B avec un ssh B