ssh security linux devops sysadmin

Le guide ultime de la gestion et de la sécurité des clés SSH

Maîtrisez la génération et la gestion des clés SSH. Découvrez les générateurs de clés SSH, les formats authorized_keys et known_hosts, ainsi que les meilleures pratiques pour sécuriser vos serveurs.

2026-04-12

Le guide ultime de la gestion et de la sécurité des clés SSH

Secure Shell (SSH) est le protocole standard pour gérer les serveurs Linux. Bien que les mots de passe puissent être utilisés, les clés SSH offrent une alternative nettement plus sûre et pratique. Cependant, la gestion correcte de ces clés — de la génération à la rotation — est essentielle pour maintenir une posture de sécurité robuste.

Ce guide couvre tout ce que vous devez savoir sur les clés SSH, de la génération de base aux stratégies de gestion avancées.


1. Génération de clés sécurisées

La première étape de la sécurité SSH consiste à choisir le bon algorithme et à générer une paire de clés robuste.

Générateur de clés SSH en ligne

Bien qu'un générateur de clés SSH en ligne soit pratique pour des tests ou pour créer rapidement une paire de clés, vous ne devriez jamais utiliser d'outil web pour des clés de production. Générez toujours vos clés privées localement sur votre machine pour garantir qu'elles ne soient jamais transmises sur le réseau.

Constructeur de commande ssh-keygen

L'outil standard pour générer des clés est ssh-keygen. Un constructeur de commande ssh-keygen peut vous aider à choisir les meilleurs paramètres. Aujourd'hui, vous devriez privilégier Ed25519 par rapport au vieillissant RSA.

Commande recommandée pour une clé moderne et sécurisée :

ssh-keygen -t ed25519 -C "[email protected]"

Si vous devez utiliser RSA pour la compatibilité avec d'anciens systèmes, assurez-vous qu'il fait au moins 4096 bits :

ssh-keygen -t rsa -b 4096

2. Gestion des accès : format Authorized_keys

Le fichier authorized_keys, généralement situé dans ~/.ssh/, détermine quelles clés publiques sont autorisées à se connecter en tant qu'utilisateur spécifique.

Format Authorized_keys

Une seule entrée dans le format authorized_keys se compose de trois parties :

  1. Options (Optionnel) : Restreignent ce que la clé peut faire (ex. : from="1.2.3.4", no-agent-forwarding).
  2. Type de clé : L'algorithme (ex. : ssh-ed25519 ou ssh-rsa).
  3. Données de la clé publique : La clé réelle encodée en base64.
  4. Commentaire (Optionnel) : Un label pour identifier la clé (généralement un e-mail ou un nom d'hôte).

Exemple avec une restriction :

from="192.168.1.0/24" ssh-ed25519 AAAAC3Nza... [email protected]

3. Vérification des serveurs : format Known_hosts

Alors que authorized_keys sert à l'authentification du client, le fichier known_hosts sert à l'authentification du serveur. Il vous protège contre les attaques de type Man-in-the-Middle (MITM).

Format Known_hosts

Le format known_hosts associe le nom d'hôte ou l'adresse IP d'un serveur à sa clé d'hôte publique. Lorsque vous vous connectez pour la première fois à un serveur, SSH vous demande de vérifier l'empreinte de l'hôte. Une fois acceptée, la clé est ajoutée à ~/.ssh/known_hosts. Si la clé du serveur change, SSH vous avertira et bloquera la connexion.

Format d'une entrée :

[nom_hôte],[IP] ssh-ed25519 AAAAC3Nza...

4. Meilleures pratiques pour la sécurité SSH

  • Utilisez une phrase secrète : Protégez toujours votre clé privée avec une phrase secrète robuste. Même si votre clé est volée, elle sera inutile sans la phrase secrète.
  • Désactivez l'authentification par mot de passe : Une fois vos clés SSH opérationnelles, désactivez les connexions par mot de passe dans /etc/ssh/sshd_config en réglant PasswordAuthentication no.
  • Faites tourner les clés régulièrement : Comme les mots de passe, les clés SSH doivent être changées périodiquement, en particulier lorsqu'un employé quitte l'entreprise.
  • Utilisez l'agent SSH : Utilisez ssh-agent pour stocker vos clés décryptées en mémoire, afin de ne pas avoir à saisir votre phrase secrète à chaque connexion.
  • Implémentez un serveur de rebond (Bastion Host) : Au lieu d'exposer tous vos serveurs à l'Internet public, utilisez un point d'entrée unique et renforcé.

5. Résumé

En maîtrisant les générateurs de clés SSH et en comprenant les formats authorized_keys et known_hosts, vous pouvez réduire considérablement le risque d'accès non autorisé à votre infrastructure. Passer des mots de passe à l'authentification par clé est l'étape la plus importante pour sécuriser tout environnement basé sur Linux.