1.4. Générer des paires de clés SSH
Cette procédure permet de générer une paire de clés SSH sur un système local et de copier la clé publique générée sur un serveur OpenSSH. Si le serveur est configuré en conséquence, vous pouvez vous connecter au serveur OpenSSH sans fournir de mot de passe.
Si vous effectuez les étapes suivantes en tant que root
, seul root
pourra utiliser les clés.
Procédure
Pour générer une paire de clés ECDSA pour la version 2 du protocole SSH :
$ ssh-keygen -t ecdsa Generating public/private ecdsa key pair. Enter file in which to save the key (/home/joesec/.ssh/id_ecdsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/joesec/.ssh/id_ecdsa. Your public key has been saved in /home/joesec/.ssh/id_ecdsa.pub. The key fingerprint is: SHA256:Q/x+qms4j7PCQ0qFd09iZEFHA+SqwBKRNaU72oZfaCI joesec@localhost.example.com The key's randomart image is: +---[ECDSA 256]---+ |.oo..o=++ | |.. o .oo . | |. .. o. o | |....o.+... | |o.oo.o +S . | |.=.+. .o | |E.*+. . . . | |.=..+ +.. o | | . oo*+o. | +----[SHA256]-----+
Vous pouvez également générer une paire de clés RSA en utilisant l'option
-t rsa
avec la commandessh-keygen
ou une paire de clés Ed25519 en entrant la commandessh-keygen -t ed25519
.Pour copier la clé publique sur une machine distante :
$ ssh-copy-id joesec@ssh-server-example.com /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed joesec@ssh-server-example.com's password: ... Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'joesec@ssh-server-example.com'" and check to make sure that only the key(s) you wanted were added.
Si vous n'utilisez pas le programme
ssh-agent
dans votre session, la commande précédente copie la clé publique~/.ssh/id*.pub
la plus récemment modifiée si elle n'est pas encore installée. Pour spécifier un autre fichier de clé publique ou pour donner la priorité aux clés contenues dans les fichiers par rapport aux clés mises en mémoire parssh-agent
, utilisez la commandessh-copy-id
avec l'option-i
.
Si vous réinstallez votre système et souhaitez conserver les paires de clés générées précédemment, sauvegardez le répertoire ~/.ssh/
. Après la réinstallation, copiez-le dans votre répertoire personnel. Vous pouvez faire cela pour tous les utilisateurs de votre système, y compris root
.
Vérification
Connectez-vous au serveur OpenSSH sans fournir de mot de passe :
$ ssh joesec@ssh-server-example.com Welcome message. ... Last login: Mon Nov 18 18:28:42 2019 from ::1
Ressources supplémentaires
-
ssh-keygen(1)
etssh-copy-id(1)
.