Comment générer une clé SSH ?

🧭 Sommaire

 

Qu’est-ce qu’est une Clé SSH ?

Les clés SSH sont des autorisations d’accès utilisées dans le protocole SSH (Secure Shell). Un shell sécurisé est un protocole réseau qui permet de se connecter d’un système à un autre en toute sécurité, ainsi que de gérer des réseaux, des systèmes d’exploitation et des configurations. D’un point de vue fonctionnel, les clés SSH sont presque identiques aux mots de passe, mais il est plus sûr de se connecter à un serveur avec des clés SSH que d’utiliser uniquement des mots de passe, car le déchiffrement de SSH est très difficile, voire impossible.

Les clés SSH se composent toujours de deux paires, et chacune de ces paires est composée d’une clé publique et d’une clé privée.

La paire de clés est utilisée pour initier une connexion sécurisée entre les deux parties distantes.
La paire de clés contient une clé publique et une clé privée. Les termes « privé » et « public » peuvent prêter à confusion, car les deux sont appelés « clés ».
Pour simplifier, nous pouvons considérer la clé publique comme une sorte de  » cadenas  » et la clé privée comme la  » clé  » de ce  » cadenas « . Chacun partage son « cadenas » (clé publique) avec l’autre pour chiffrer ou « verrouiller » des données. Ces données sont ensuite ouvertes à l’aide de la clé « privée », que vous conservez en lieu sûr.

Si ce n’est toujours pas suffisamment clair pour vous, je vous invite à regarder la vidéo ci-dessous de @cookieconnecte qui a fait une excellente vidéo sur le sujet.

Comment choisir un algorithme et une taille de clé ?

Avant de générer votre paire de clés SSH, vous devez choisir un type d’algorithme.

En général, les serveurs offrent de nombreux types différents d’algorithmes compatibles, dans le choix il faut donner la priorité au type de clé le plus robuste et vérifier la compatibilité de celle-ci entre les deux parties distantes.

En réalité, cela n’a pas d’importance pour l’utilisateur final. Certaines clés peuvent présenter des risques pour la sécurité, mais elles ne sont pas considérées comme totalement cassées lorsque leur longueur est suffisante.

 

 

  • rsa – un ancien algorithme basé sur la difficulté de factoriser de grands nombres. Une taille de clé d’au moins 2048 bits est recommandée pour RSA ; 4096 bits sont préférables. RSA se fait vieux et des progrès significatifs sont réalisés dans le domaine de la factorisation. Il peut être préférable de choisir un autre algorithme. Tous les clients SSH prennent en charge cet algorithme.
  • dsa – un ancien algorithme de signature numérique du gouvernement américain. Il est basé sur la difficulté de calculer les logarithmes discrets. Une taille de clé de 1024 est normalement utilisée avec cet algorithme. DSA dans sa forme originale est déconseillé.
  • ecdsa – un nouvel algorithme de signature numérique normalisé par le gouvernement américain, utilisant des courbes elliptiques. Il s’agit probablement d’un bon algorithme pour les applications actuelles. Seules trois tailles de clés sont prises en charge : 256, 384 et 521 bits. La plupart des clients SSH prennent désormais en charge cet algorithme.
  • ed25519 – il s’agit d’un nouvel algorithme ajouté dans OpenSSH. Sa compatibilité avec les clients n’est pas encore généralisée. Par conséquent, son utilisation dans des applications générales n’est pas encore recommandée.

 

Générer une paire de clés SSH avec ssh-keygen (OpenSSH authentication key utility)

Vous avez deux choix pour générer votre clé SSH, le premier est d’utiliser ssh-keygen et de laisser l’outil vous guider, vous avez alors les paramètres par défaut.

Sinon, vous avez la deuxième méthode qui vous permet de choisir le type et la taille de l’algorithme que vous souhaitez.

⇒La première méthode, la plus simple, pour générer une paire de clés est d’exécuter ssh-keygen sans arguments. Dans ce cas, il vous demandera le chemin du fichier dans lequel stocker les clés.

Ouvrez un terminal:

ssh-keygen

cassos298@admin-cassos:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/cassos298/.ssh/id_rsa): test
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in test
Your public key has been saved in test.pub
The key fingerprint is:
SHA256:IfbF1mfswcpQ1+zzjhdgfrssMCg4+reztbdR1HwU cassos298@admin-cassos
The key's randomart image is:
+---[RSA 3072]----+
.o o.. |
| o +Eo |
| + . |
| . + o |
| S o = * o|
| . o @.|
| . = o|
| . o |
| o.
| . |
+----[SHA256]-----+

 

Tout d’abord, ssh-keygen vous demande où vous souhaitez enregistrer le fichier.
Les fichiers de clés d’authentification SSH des utilisateurs sont généralement stockés dans le répertoire .ssh de l’utilisateur, sous son répertoire personnel. Le nom du fichier de clé par défaut dépend de l’algorithme.

Ensuite, vous devez entrer une passphrase. La passphrase est utilisée pour chiffrer la clé, afin qu’elle ne puisse pas être utilisée même si quelqu’un obtient le fichier de clé privée.

⇒ Avec la deuxième méthode ,vous pouvez choisir l’algorithme avec l’option -t et la taille de la clé avec l’option -b. Vous pouvez également spécifier le chemin et le nom du fichier dans lequel vous voulez stocker la clé en utilisant l’option -f <filename>.

Voici quelques exemples de commandes :

ssh-keygen -f ~/ssh_key -t rsa -b 4096
ssh-keygen -f ~/ssh_key -t dsa
ssh-keygen -f ~/ssh_key -t ecdsa -b 521
ssh-keygen -f ~/ssh_key -t ed25519

 

Comme pour la première méthode, vous devez entrer une passphrase et voilà votre clé SSH est prête !

 

 

 

Laisser un commentaire