OpenSSH permet une authentification beaucoup plus sécurisé qu’un simple contrôle de mot de passe. Il nous offre la possibilité de nous authentifier sans mot de passe, « juste » avec une clé privée / clé publique.
La clé privée chez nous permet l’authentification via la clé publique qui elle, est sur le serveur.
Générer une clé SSH privée / publique
Tout se déroule sur le poste client.
La commande ssh-keygen permet de générer ces clés.
sacha@debian:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/sacha/.ssh/id_rsa):
Created directory '/home/sacha/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/sacha/.ssh/id_rsa.
Your public key has been saved in /home/sacha/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:Z5HwtsNKQrNDUNFT3JO4UuckwsQ4GhJtcrTVvoLfRR8 sacha@debian
The key's randomart image is:
+---[RSA 2048]----+
| .+o.+Ooo.o . |
| o =+o Bo=.* |
| =.o+o +=* . |
| .o oooooE |
| .+ S+*. . |
| . .+.+... |
| . o.. |
| . . |
| |
+----[SHA256]-----+
Envoyer la clé publique sur le serveur
On envoie directement la clé publique du client sur le serveur pour s’authentifier.
sacha@debian:~$ ssh-copy-id -i .ssh/id_rsa.pub sacha@debian
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: ".ssh/id_rsa.pub"
/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
The authenticity of host 'debian (127.0.1.1)' can't be established.
ECDSA key fingerprint is SHA256:f/40qgo+GG/k2K0Pjn6x5yx4ssW3Dzi5RCVjX0H6oPY.
Are you sure you want to continue connecting (yes/no)? yes
Password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'sacha@debian'" and check to make sure that only the key(s) you wanted were added.
Connexion sur le serveur sans mot de passe
Il n’y a plus qu’à se connecter sur le compte SSH (sans mot de passe, on utilise directement la clé privée).
sacha@debian:~$ ssh sacha@debian
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Fri May 27 14:49:16 2016 from 127.0.0.1
Exemple d’utilisation du SSH sans mot de passe
Nous avons eu besoin d’envoyer des commandes remote sur le serveur, c’est-à-dire d’envoyer une commande via SSH pour qu’elle s’exécute sur le serveur.
Pour procéder ainsi, il faut supprimer la demande de mot de passe.
sacha@debian:~$ ssh -t sacha@debian "ls /home"
lost+found $RECYCLE.BIN sacha System Volume Information
Connection to debian closed.