Authentification SSH par clé
Pour limiter l’usage de différent mot de passe sur x serveurs et ajouter un peu de sécurisation supplémentaire.
La clé privée associée a une passphrase sert a la connexion.
La clé publique est déposé sur le serveur.
1. Générer une clé privée pour Linux
/!\ Pendant la création, il sera demandé une passphrasse, celle-ci est fortement conseillée.
1 |
$ ssh-keygen -t rsa -b 4096 -C "commentaire" |
1 2 3 4 5 6 |
Generating public/private rsa key pair. Enter file in which to save the key (/home/bef/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/utilisateur/.ssh/id_rsa. Your public key has been saved in /home/utilisateur/.ssh/id_rsa.pub. |
Vérifier ensuite la présence de 3 fichiers dans le répertoire .ssh de l’utilisateur
1 |
$ ls -al ~/.ssh |
Ce qui devrait retourner
1 2 3 4 5 |
-rw------- 1 bef bef 3326 sept. 11 13:37 id_rsa -rw-r--r-- 1 bef bef 737 sept. 11 13:37 id_rsa.pub -rw-r--r-- 1 bef bef 222 sept. 11 13:37 known_hosts |
En détail
id_rsa = la clé privée
id_rsa.pub = la clé publique
known_hosts = un fichier qui recense les hôtes connus
Il faut ensuite pousser la clé publique vers le serveur distant avec la commande
1 |
$ ssh-copy-id utilisateur@adressipserveur_ou_fqdn |
il faudra taper le mot de passe utilisateur une dernière fois !
On peut aussi depuis le serveur la déposer dans le fichier adéquat
1 |
$ cat id.rsa.pub >> .ssh/authorized_keys |
Dépôt de la clé publique vers le serveur 192.168.3.99
Connexion au serveur 192.168.3.99 avec la clé privé
2. Utiliser la clé privée pour Windows avec Putty
Depuis Windows sous Putty, télécharger Puttygen puis importé la clé, il demande la passphrase
Ensuite on la réexport au format de Putty.
Puis on l’ajoute au profil sur Putty
FAQ
Depuis le batch sous Windows 10, un ssh-add renvoi l’erreur “Could not open a connection to your authentication agent.”
Il faut démarrer le service et relancer la commande
1 |
$ eval `ssh-agent -s` |
Puis
1 |
$ ssh-add |
Puis faire un rm du known_hosts et recrée en lien symbolique.
1 |
$ rm .ssh/known_hosts |
1 |
$ ln -s /mnt/c/Users/BEF/.ssh/known_hosts ~/.ssh/known_hosts |
—
Changer le mot de passe de la clé privé
1 |
$ ssh-keygen -f .ssh/id_rsa -p |