OpenSSH : Authentification via clé publique

Connexion par clé privée / publique sur un serveur OpenSSH pour se connecter sans mot de passe
  • Linux

OpenSSH Serveur

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.

Article publié le

Dernière modification le

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.