Le but
Ne plus avoir à saisir de mot de passe pour se connecter en SSH.
Dans mon cas (article suivant) j’ai besoin d’installer mes repo Git sur un serveur distant et d’y accéder par SSH
Les éléments fournis sont viables sur un environnement Debian et affiliés (Ubuntu/Mint…)
Installation des clients/serveurs SSH
Situons les choses : nous désirons que notre machine Malorean (c’est le nom de mon laptop :p ) – via le compte lde – puisse se connecter en SSH à la machine puppet1 ( mon serveur Debian de test).
En root (ou avec les droit associés (Sudo ou su selon votre distrib)
Sur le client (malorean)
apt-get update
apt-get install openssh-client
Sur le serveur (puppet1)
apt-get update
apt-get install openssh-server
Création et publication des clefs
Création du jeux de clef privée/publique
Sur la machine cliente (Malorean)
ssh-keygen -t dsa -b 1024
Tapez entrer pour donner le nom par défaut id_dsa au couple de clef privée/publique
Si vous saisissez une passphare sil faudra la saisir à chaque connexion, si vous désiez une connexion « automatique » ne saisissez rien (certes la sécurité est moindre), pour ma part pas de passphrase.
C’est fini
Your identification has been saved in /home/lde/.ssh/id_dsa.
Your public key has been saved in /home/lde/.ssh/id_dsa.pub.
The key fingerprint is:
f3:88:cc:dc:7f:9a:79:f4:3c:10:d9:33:3f:d7:4c:6d lde@malorean3
The key's randomart image is:
+--[ DSA 1024]----+
| |
| |
| o .|
| o + E|
| S . B.|
| + o + o .=|
| = o .. + o|
| . oo + |
| =+ . |
+-----------------+
Ne me demandez pas à quoi sert ce random art image je n’en ai pas la moindre idée.
Un ls -lha ~/.ssh pour vérifier que les fichiers sont bien la
-rw------- 1 lde lde 668 oct. 2 18:07 id_dsa
-rw-r--r-- 1 lde lde 603 oct. 2 18:07 id_dsa.pub
Publication de la clef publique
A présent il faut ajouter à un couple user/serveur (dans notre cas lde@puppet1) la clef publique du Client (Malorean dans mon cas).
Attention Malorean et Puppet1 dans mon exemple possèdent le même nom de user lde (étant du coté client et serveur j’ai utilisé le même nom de user) , mais il pourraient évidement êtres différents.
ssh-copy-id -i ~/.ssh/id_dsa.pub lde@puppet1
Saisissez le mot de passe du serveur distant et c’est bon.
Now try logging into the machine, with "ssh 'lde@puppet1'", and check in:
~/.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting
Attention : à ne pas envoyer votre clef privée (la id_dsa) qui doit rester secrète.
Pas très grave si le serveur distant est géré par vous (et encore, il faut éviter ce type de bourdes) mais dangereux si le serveur distant est géré par un tiers.
Ce derniers pourrait alors tenter de se connecter à votre serveur distant.
Pour certaines tâches délicates : fermez votre bureau, éteignez le téléphone et prenez votre temps : ça vous évitera des erreurs graves pour la sécurité de vos sysèmes.
Testons
ssh lde@puppet1
Si vous n’avez pas saisis de passphrase vous devez être connecté
Sinon entrez la passphrase demandé et vous devriez être connecté.