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 :
Pour avoir un accès authentifié sur une machine dont on aurait supprimé tous les moyens de connexion autres (y compris écran et clavier)
Pour ne plus utiliser le mot de passe de son compte courant distant dont la capture ouvrirait à plus d'accès que le seul accès à une machine distante.
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...) .
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