Serveurs Dédiés & VPS10 décembre 2025 14 vues

Configurer une Clé SSH sur VPS Linux

Configurer une Clé SSH sur VPS Linux

Introduction aux Clés SSH

Les clés SSH (Secure Shell) offrent une méthode d'authentification bien plus sécurisée que les mots de passe traditionnels. Au lieu de taper un mot de passe à chaque connexion, vous utilisez une paire de clés cryptographiques :

  • Clé privée : Reste sur votre ordinateur local (ne jamais la partager)
  • Clé publique : Installée sur le serveur VPS

Lorsque vous vous connectez, le serveur vérifie que votre clé privée correspond à la clé publique enregistrée. Si la correspondance est validée, vous êtes authentifié instantanément.

Avantages des clés SSH

Aspect Mot de passe Clé SSH
Sécurité Vulnérable aux attaques brute-force Quasi-impossible à craquer
Commodité Saisie manuelle à chaque connexion Connexion automatique
Partage Risque si divulgué Clé publique partageable sans risque
Longueur Généralement 8-20 caractères 2048-4096 bits de cryptage
Automatisation Difficile à scripter Idéal pour les scripts

🖥️ Méthode 1 : Générer une Clé SSH sur Windows avec PuTTY

Étape 1 : Télécharger PuTTY et PuTTYgen

PuTTY est le client SSH le plus populaire pour Windows. PuTTYgen est l'utilitaire de génération de clés inclus.

  1. Rendez-vous sur le site officiel : https://www.putty.org/
  2. Téléchargez le package d'installation MSI (64-bit ou 32-bit selon votre système)
  3. Installez PuTTY - PuTTYgen sera automatiquement inclus

Vous pouvez aussi télécharger uniquement puttygen.exe si vous avez déjà PuTTY.

Fichier PuTTYgen téléchargé Le fichier puttygen.exe téléchargé

Étape 2 : Lancer PuTTYgen

  1. Ouvrez PuTTYgen via :

    • Menu DémarrerTous les programmesPuTTYPuTTYgen
    • Ou double-cliquez sur puttygen.exe
  2. L'interface de génération de clés s'affiche :

Interface principale de PuTTYgen Interface principale de PuTTYgen

Étape 3 : Configurer les paramètres

Avant de générer la clé, vérifiez les paramètres en bas de la fenêtre :

Paramètre Valeur recommandée Description
Type of key RSA ou EdDSA (Ed25519) Algorithme de chiffrement
Number of bits 4096 (RSA) ou 256 (Ed25519) Longueur de la clé

💡 Recommandation : Pour une sécurité maximale, choisissez RSA 4096 bits ou EdDSA (Ed25519) qui est plus moderne et performant.

Étape 4 : Générer la paire de clés

  1. Cliquez sur le bouton Generate
  2. Important : Déplacez votre souris de manière aléatoire dans la zone vide pour générer de l'entropie (aléatoire cryptographique)

Génération de la clé - déplacer la souris Déplacez votre souris pour générer l'aléatoire

  1. Attendez que la barre de progression se remplisse

Étape 5 : Configurer et sauvegarder les clés

Une fois la clé générée, vous verrez cet écran :

Clé SSH générée dans PuTTYgen Clé SSH générée avec succès

Ajouter une passphrase (recommandé)

La passphrase ajoute une couche de sécurité supplémentaire. Même si quelqu'un obtient votre clé privée, il ne pourra pas l'utiliser sans la passphrase.

Configuration de la passphrase Saisie de la passphrase

  1. Dans Key passphrase, entrez une phrase secrète
  2. Confirmez dans Confirm passphrase

Sauvegarder la clé privée

  1. Cliquez sur Save private key
  2. Choisissez un emplacement sécurisé
  3. Nommez le fichier (ex: ma_cle_vps.ppk)

Sauvegarde de la clé privée Bouton Save private key

Enregistrement du fichier PPK Enregistrement du fichier .ppk

Sauvegarder la clé publique

  1. Cliquez sur Save public key
  2. Nommez le fichier (ex: ma_cle_vps.pub)

Sauvegarde de la clé publique Enregistrement de la clé publique

Copier la clé publique au format OpenSSH

Important : Pour les serveurs Linux, vous devez copier la clé au format OpenSSH :

  1. Sélectionnez tout le texte dans la zone "Public key for pasting into OpenSSH authorized_keys file"
  2. Copiez-le (Ctrl+C)
  3. Gardez-le de côté pour l'étape suivante

Le format ressemble à :

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDx... rsa-key-20241210

Étape 6 : Configurer PuTTY pour utiliser la clé

  1. Ouvrez PuTTY
  2. Dans le menu de gauche, naviguez vers : ConnectionSSHAuthCredentials

Configuration des credentials dans PuTTY Section Credentials dans PuTTY

  1. Cliquez sur Browse à côté de "Private key file for authentication"

Bouton Browse pour la clé privée Sélection de la clé privée

  1. Sélectionnez votre fichier .ppk

Sélection du fichier PPK Fichier .ppk sélectionné

  1. Retournez à Session, entrez l'IP de votre VPS et sauvegardez la session

🐧 Méthode 2 : Générer une Clé SSH sur Linux/macOS

Étape 1 : Ouvrir le Terminal

  • Linux : Ctrl+Alt+T ou cherchez "Terminal"
  • macOS : Applications → Utilitaires → Terminal

Étape 2 : Générer la paire de clés

Option A : Clé RSA 4096 bits (compatible universellement)

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Option B : Clé Ed25519 (recommandée, plus moderne)

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

Étape 3 : Suivre les instructions

Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/utilisateur/.ssh/id_ed25519):
  1. Emplacement : Appuyez sur Entrée pour accepter l'emplacement par défaut (~/.ssh/id_ed25519)
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
  1. Passphrase : Entrez une phrase secrète (recommandé) ou appuyez sur Entrée pour aucune

Étape 4 : Vérifier la création

ls -la ~/.ssh/

Vous devriez voir :

  • id_ed25519 (ou id_rsa) - Clé privée
  • id_ed25519.pub (ou id_rsa.pub) - Clé publique

Étape 5 : Afficher la clé publique

cat ~/.ssh/id_ed25519.pub

Résultat :

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... [email protected]

Copiez cette ligne complète pour l'installer sur le serveur.


🚀 Installer la Clé Publique sur le VPS

Méthode 1 : Avec ssh-copy-id (Linux/macOS - Recommandée)

La commande ssh-copy-id automatise l'installation :

ssh-copy-id -i ~/.ssh/id_ed25519.pub utilisateur@IP_DU_VPS

Exemple :

ssh-copy-id -i ~/.ssh/id_ed25519.pub [email protected]

Vous devrez entrer votre mot de passe une dernière fois. Ensuite, la clé sera installée automatiquement.

Méthode 2 : Installation manuelle

Si ssh-copy-id n'est pas disponible :

Étape 1 : Connectez-vous au VPS avec mot de passe

ssh root@IP_DU_VPS

Étape 2 : Créer le dossier .ssh (si nécessaire)

mkdir -p ~/.ssh
chmod 700 ~/.ssh

Étape 3 : Créer/éditer le fichier authorized_keys

nano ~/.ssh/authorized_keys

Étape 4 : Coller la clé publique

Collez la clé publique copiée précédemment (une seule ligne).

Pour PuTTY, c'est le contenu de "Public key for pasting into OpenSSH authorized_keys file".

Étape 5 : Sauvegarder et définir les permissions

chmod 600 ~/.ssh/authorized_keys

Étape 6 : Tester la connexion

Déconnectez-vous et reconnectez-vous :

exit
ssh root@IP_DU_VPS

Si tout fonctionne, vous serez connecté sans mot de passe (ou avec votre passphrase si vous en avez défini une).

Méthode 3 : En une seule commande (depuis votre PC local)

cat ~/.ssh/id_ed25519.pub | ssh root@IP_DU_VPS "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

🔒 Sécuriser le Serveur SSH

Une fois les clés SSH configurées, renforcez la sécurité en désactivant l'authentification par mot de passe.

Étape 1 : Éditer la configuration SSH

sudo nano /etc/ssh/sshd_config

Étape 2 : Modifier les paramètres

Recherchez et modifiez ces lignes :

# Désactiver l'authentification par mot de passe
PasswordAuthentication no

# Désactiver les mots de passe vides
PermitEmptyPasswords no

# Activer l'authentification par clé publique
PubkeyAuthentication yes

# Désactiver l'authentification challenge-response
ChallengeResponseAuthentication no

# Optionnel : Désactiver la connexion root (créez un utilisateur sudo d'abord)
# PermitRootLogin no

Étape 3 : Redémarrer le service SSH

sudo systemctl restart sshd

⚠️ Attention : Gardez une session SSH ouverte pendant les tests ! Si la configuration est incorrecte, vous pourriez perdre l'accès.


🛠️ Gestion des Clés SSH

Ajouter plusieurs clés

Vous pouvez autoriser plusieurs clés (plusieurs ordinateurs, plusieurs utilisateurs) :

nano ~/.ssh/authorized_keys

Ajoutez une clé par ligne.

Supprimer une clé

Éditez authorized_keys et supprimez la ligne correspondant à la clé.

Changer la passphrase d'une clé existante

ssh-keygen -p -f ~/.ssh/id_ed25519

Afficher l'empreinte (fingerprint) d'une clé

ssh-keygen -lf ~/.ssh/id_ed25519.pub

🔄 Convertir les Formats de Clés

PPK vers OpenSSH (PuTTY → Linux)

Dans PuTTYgen :

  1. Chargez votre fichier .ppk avec Load
  2. Allez dans ConversionsExport OpenSSH key
  3. Sauvegardez le fichier

OpenSSH vers PPK (Linux → PuTTY)

Dans PuTTYgen :

  1. Allez dans ConversionsImport key
  2. Sélectionnez votre clé privée OpenSSH (id_rsa ou id_ed25519)
  3. Cliquez sur Save private key

🔧 Dépannage

"Permission denied (publickey)"

Causes possibles :

  • Clé publique non installée sur le serveur
  • Mauvaises permissions sur .ssh ou authorized_keys
  • Clé privée incorrecte utilisée

Solutions :

# Vérifier les permissions (sur le serveur)
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

# Vérifier que la clé est bien dans authorized_keys
cat ~/.ssh/authorized_keys

"Connection refused"

Causes possibles :

  • Service SSH non démarré
  • Pare-feu bloquant le port 22

Solutions :

# Vérifier le statut SSH
sudo systemctl status sshd

# Redémarrer si nécessaire
sudo systemctl start sshd

# Vérifier le pare-feu
sudo ufw status
sudo ufw allow 22

"Host key verification failed"

Le serveur a changé (réinstallation, nouvelle IP). Supprimez l'ancienne entrée :

ssh-keygen -R IP_DU_VPS

La passphrase est demandée à chaque connexion

Utilisez ssh-agent pour mémoriser la passphrase :

# Démarrer l'agent
eval "$(ssh-agent -s)"

# Ajouter la clé
ssh-add ~/.ssh/id_ed25519

📋 Récapitulatif des Commandes

Action Commande
Générer clé RSA 4096 ssh-keygen -t rsa -b 4096
Générer clé Ed25519 ssh-keygen -t ed25519
Copier clé vers serveur ssh-copy-id -i ~/.ssh/id_ed25519.pub user@IP
Afficher clé publique cat ~/.ssh/id_ed25519.pub
Tester connexion verbose ssh -v user@IP
Changer passphrase ssh-keygen -p -f ~/.ssh/id_ed25519
Voir fingerprint ssh-keygen -lf ~/.ssh/id_ed25519.pub

📁 Structure des Fichiers SSH

~/.ssh/
├── authorized_keys      # Clés publiques autorisées (sur le serveur)
├── id_ed25519          # Clé privée Ed25519 (sur le client)
├── id_ed25519.pub      # Clé publique Ed25519 (sur le client)
├── id_rsa              # Clé privée RSA (sur le client)
├── id_rsa.pub          # Clé publique RSA (sur le client)
├── known_hosts         # Empreintes des serveurs connus
└── config              # Configuration personnalisée (optionnel)

Permissions requises

Fichier/Dossier Permission Commande
~/.ssh/ 700 chmod 700 ~/.ssh
authorized_keys 600 chmod 600 ~/.ssh/authorized_keys
Clé privée 600 chmod 600 ~/.ssh/id_ed25519
Clé publique 644 chmod 644 ~/.ssh/id_ed25519.pub

💡 Bonnes Pratiques

  1. Utilisez Ed25519 pour les nouvelles clés (plus sécurisé et performant que RSA)

  2. Définissez toujours une passphrase sur vos clés privées

  3. Ne partagez jamais votre clé privée - seule la clé publique doit être copiée

  4. Sauvegardez vos clés dans un endroit sécurisé (gestionnaire de mots de passe, coffre-fort)

  5. Utilisez des clés différentes pour des usages différents (travail, personnel, serveurs critiques)

  6. Désactivez l'authentification par mot de passe une fois les clés configurées

  7. Auditez régulièrement le fichier authorized_keys pour supprimer les clés inutilisées

  8. Changez vos clés périodiquement (tous les 1-2 ans minimum)


❓ FAQ

Quelle est la différence entre RSA et Ed25519 ?

Aspect RSA Ed25519
Sécurité Excellente (4096 bits) Excellente (256 bits)
Performance Plus lent Plus rapide
Taille de clé Grande Petite
Compatibilité Universelle Très bonne (post-2014)

Recommandation : Ed25519 pour les nouveaux déploiements, RSA pour la compatibilité avec d'anciens systèmes.

Puis-je utiliser la même clé pour plusieurs serveurs ?

Oui, vous pouvez installer la même clé publique sur plusieurs serveurs. Cependant, pour une sécurité optimale, utilisez des clés différentes pour des environnements critiques.

Comment ajouter un commentaire à ma clé ?

Le paramètre -C permet d'ajouter un commentaire :

ssh-keygen -t ed25519 -C "laptop-travail-2024"

Est-ce que les clés SSH expirent ?

Non, les clés SSH n'ont pas de date d'expiration intégrée. C'est à vous de les faire tourner régulièrement.