Le programme ssh-agent est un agent d'authentification qui gère les mots de passe pour les clés privées SSH. Utilisez ssh-add pour ajouter les clés à la liste maintenue par ssh-agent. Après avoir ajouté un mot de passe de clé privée à ssh-agent, vous n'avez pas besoin de le saisir chaque fois que vous vous connectez à un hôte distant avec votre clé publique.
Génération de paires de clés d'authentification
Utilisez le ssh-keygen pour générer des paires de clés d'authentification comme décrit ci-dessous. Fournissez une phrase de passe, par exemple "mot de passe", lors de la création des paires de clés.
# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:4lYqkqgXmhIxoyMdT+ZfGFCxeMUqTnXLjrRQKjbEC/U root@geeklab The key's randomart image is: +---[RSA 2048]----+ | o. .oo. | |. o...ooo | | o .E=o+ . | |+ * B.+ o | |.* @ +.*S | |=.o.+.++o | |o=o...+. | |= .. o. | |o. | +----[SHA256]-----+
Copiez la clé publique sur l'hôte distant
1. Copiez la clé publique dans ~/.ssh/authorized_keys sur le système distant.
# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
2. Maintenant, essayez de vous connecter à la machine, avec "ssh '[email protected]′", et vérifiez le .ssh/authorized_keys fichier pour nous assurer que nous n'avons pas ajouté de clés supplémentaires auxquelles vous ne vous attendiez pas.
$ ssh 192.168.12.10 Enter passphrase for key '/root/.ssh/id_rsa': Last login: Wed Apr 06 09:03:50 2014 from 192.168.12.20
Ajouter un mot de passe de clé privée à ssh-agent
1. Pour ajouter le mot de passe de la clé privée à ssh-agent, saisissez la commande suivante :
# exec ssh-agent $SHELL
2. L'étape suivante consiste à utiliser la commande ssh-add pour ajouter la clé.
# ssh-add Enter passphrase for /root/.ssh/id_rsa: Identity added: /root/.ssh/id_rsa (/root/.ssh/id_rsa)
3. La commande "ssh-add -l" répertorie les empreintes digitales de toutes les identités actuellement représentées par l'agent.
# ssh-add -l 2048 SHA256:4lYqkqgXmhIxoyMdT+ZfGFCxeMUqTnXLjrRQKjbEC/U /root/.ssh/id_rsa (RSA)
4. Vous pouvez maintenant essayer de vous connecter au système distant sans mot de passe.
$ ssh 192.168.12.10 Last login: Thu Apr 06 11:13:29 2014 from 192.168.12.20
Dans cet exemple, la phrase secrète est mémorisée uniquement pour la session de connexion en cours et est oubliée lorsque vous vous déconnectez.