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é 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.
$ ssh-keygen -b 4096
Generating public/private dsa key pair. Enter file in which to save the key (/home/utilisateur/.ssh/id_dsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/utilisateur/.ssh/id_dsa. Your public key has been saved in /home/utilisateur/.ssh/id_dsa.pub.
Vérifier ensuite la présence de 3 fichiers dans le répertoire .ssh de l’utilisateur
$ ls -al ~/.ssh
Ce qui devrait retourner
-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 le clé publique vers le serveur distant avec la commande
$ ssh-copy-id utilisateur@adressipserveur_ou_fqdn
il faudra taper le mot de passe utilisateur une dernière fois !
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
$ eval `ssh-agent -s`
Puis
$ ssh-add
Puis faire un rm du known_hosts et recrée en lien symbolique.
$ rm .ssh/known_hosts
$ ln -s /mnt/c/Users/BEF/.ssh/known_hosts ~/.ssh/known_hosts