L’accès SSH par clé publique constitue un moyen beaucoup plus sécurisé pour accéder à votre serveur dédié VPS que l’utilisation d’un mot de passe. En effet, un mot de passe peut être découvert, alors qu’une clé SSH ne peut être “crackée” avec un bruteforce.

Ce tutoriel décrit comment réaliser une authentification par clé publique entre une machine sous Linux et votre serveur dédié VPS.

ssh

 

Sécuriser l’accès SSH par cryptage asymétrique

Une connexion SSH par clé, est sécurisée par un cryptage asymétrique. Ce cryptage se réalise à l’aide d’un jeu de clé. Une clé privée et une clé publique.

La clé publique est accessible à quiconque la demande, celle-ci sert à crypter l’information. La clé privée reste connue de vous seul et sert à décrypter l’information reçue.

Le schéma suivant explique rapidement cette échange :

ssh1

1re étape : Alice génère deux clés. La clé publique (verte) qu’elle envoie à Bob et la clé privée (rouge) qu’elle conserve précieusement sans la divulguer à quiconque.

 

ssh2

2e et 3e étapes : Bob chiffre le message avec la clé publique d’Alice et envoie le texte chiffré. Alice déchiffre le message grâce à sa clé privée.

 

 

Créer une paire de clés asymétriques pour l’accès SSH à un serveur

Pour ce faire il suffit d’utiliser la commande suivante :

ssh-keygen -t rsa -b 4096

 

-t rsa (algorithme utiliser pour crypter les informations échangées en ssh)
-b 4096 (donne la longueur de la clé de cryptage ou clé publique)

Une fois la commande exécutée, le programme vous demande où stocker votre paire de clés (par défaut ~/.ssh). Vous pouvez spécifier le répertoire que vous désirez.

Enter file in which to save the key (/home/bertrand/.ssh/id_rsa):

 

Ensuite on vous demande si vous désirez ajouter une passphrase à votre clé publique. Cette “passphrase” sert à ajouter une protection supplémentaire. Lors de la connexion SSH un mot de passe sera demandé pour pouvoir utiliser cette clé.

Si votre objectif est de réaliser une connexion automatique, laissé la passphrase vide.

Enter passphrase (empty for no passphrase):

 

Le jeu de clé rsa se génère alors :

ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/bertrand/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/bertrand/.ssh/id_rsa.
Your public key has been saved in /home/bertrand/.ssh/id_rsa.pub.
The key fingerprint is:
4a:dd:0a:c6:35:4e:3f:ed:27:38:8c:74:44:4d:93:67 demo@a
The key's randomart image is:
+--[ RSA 2048]----+
|          .oo.   |
|         .  o.E  |
|        + .  o   |
|     . = = .     |
|      = S = .    |
|     o + = +     |
|      . o + o .  |
|           . o   |
|                 |
+-----------------+

 

Dans le répertoire /home/bertrand/.ssh on retrouve nos deux clés :

ls -l /home/bertrand/.ssh/
-rw------- 1 root root 3243 Sep 25 2013 id_rsa
-rw-r--r-- 1 root root 735 Sep 25 2013 id_rsa.pub

 

 

Accéder en SSH à l’aide d’une paire de clés asymétriques

La copie de la clé publique sur le VPS se fait via la commande suivante :

ssh-copy-id root@<ip_du_vps>

 

La clé publique que vous venez de créer (ici /home/bertrand/.ssh/id_rsa.pub) sera copiée sur le VPS dans le fichier /root/.ssh/authorized_keys.

A partir de là vous pouvez vous connecter à votre serveur (vérifiez que l’accès ssh est bien ouvert dans le pare-feu de votre VPS) grâce à une commande de ce type :

ssh -i /home/bertrand/.ssh/id_rsa root@<ip_du_vps>

 

 

INFO : Notre équipe technique peut vous aider à sécuriser l’accès à votre serveur dédié VPS par chiffrement asymétrique, n’hésitez pas à nous contacter !