Configurer l’authentification par clé SSH

Cet article décrit la mise en place d’une connexion SSH sans mot de passe, à l’aide d’une paire de clés. Si l’on se connecte quotidiennement à une machine distante, la connexion SSH sans mot de passe évite d’avoir à saisir le mot de passe à chaque fois. Dans l’exemple ci-dessous, l’utilisateur kikinovak souhaite se connecter depuis la machine buildbox.microlinux.lan à la machine nestor.microlinux.lan sans avoir à saisir son mot de passe à chaque connexion.

Générer la paire de clés

Sur la machine buildbox.microlinux.lan, créer une clé d’identification SSH. Accepter l’emplacement par défaut pour la sauvegarde de la clé en appuyant sur [Entrée]. De même, laisser la zone du mot de passe vide en appuyant deux fois de suite sur [Entrée] :

[kikinovak@buildbox:~] $ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/kikinovak/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/kikinovak/.ssh/id_rsa.
Your public key has been saved in /home/kikinovak/.ssh/id_rsa.pub.

On vient de créer une clé privée ~/.ssh/id_rsa et une clé publique ~/.ssh/id_rsa.pub :

[kikinovak@buildbox:~] $ tree -a .ssh/
.ssh/
|-- id_rsa
|-- id_rsa.pub
`-- known_hosts

Transférer la clé publique

Maintenant, il faut transférer la clé publique (et non PAS la clé privée) sur la machine distante, en l’occurrence nestor.microlinux.lan :

$ ssh-copy-id -i ~/.ssh/id_rsa.pub kikinovak@nestor
The authenticity of host 'nestor (192.168.2.1)' 
can't be established.
ECDSA key fingerprint is 
08:16:b0:b0:81:c3:73:96:99:ea:8c:b6:e7:38:b7:d3.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the 
new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- 
if you are prompted now it is to install the new keys
kikinovak@nestor's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'kikinovak@nestor'"
and check to make sure that only the key(s) you wanted were added.

Contrôler les clés installées

À présent, on peut se connecter à la machine distante :

[kikinovak@buildbox:~] $ ssh kikinovak@nestor
Linux 3.10.17.

Il ne reste plus qu’à contrôler le fichier ~/.ssh/authorized_keys pour vérifier qu’on n’a pas ajouté des clés supplémentaires indésirables :

[kikinovak@nestor:~] $ cat ~/.ssh/authorized_keys
AAAAB3NzaC1yc2EAAAADAQABAAABAQC2QQSfCGvvt7T9Fx/iSUIe1c/7c6wfQ0sdpF
t6tmhvPWRgwjfxhB4XZLZnEduUAfEcxgjsZ/fw4kIYWKlcndnOdeiUxCz1ebSg1+4H
KBMBLtWEjg1koKZEoX6hnB6Lg6qxoF9aye3bft7hMiY2v66MdsjLOHnom0g2s2l0op
8Q4o6QBJOn3L4VgeEZbPYw8fs/IXmSscoCGkUmMlmUo0Mka/Gv96ccSAsSywANaKlD
2n0X2dRyWHhTMHc7J047xyCxa0c6A1NeoX6sn8oI3pECIJEoZ4ml1OQfj3VPGFCNoL
+WciQRf kikinovak@buildbox.microlinux.lan

Se connecter sans mot de passe

Dorénavant, la connexion SSH ne requiert pas la saisie du mot de passe :

[kikinovak@buildbox:~] $ ssh nestor
Last login: Wed Dec  9 08:15:32 2015 from buildbox.microlinux.lan
Linux 3.10.17.
[kikinovak@nestor:~] $ 
Ce contenu a été publié dans Documentation Microlinux, avec comme mot(s)-clé(s) . Vous pouvez le mettre en favoris avec ce permalien.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *