Aller au contenu

La gestion des clefs OpenSSH sous Windows

1. Objectif du cours

Expliquer l'intérêt des clés SSH sous Windows, montrer comment générer une paire de clés (publique/privée) avec OpenSSH et décrire la protection des clés privées via ssh-agent et ssh-add.

2. Notions et définitions essentielles

  • Paire de clés SSH : deux éléments complémentaires — clé privée et clé publique — qui s'utilisent ensemble.
  • Clé publique : généralement déposée sur le serveur distant pour autoriser la connexion.
  • Clé privée : reste sur la machine cliente et doit être protégée (équivalente à un mot de passe unique).
  • Passphrase : phrase secrète chiffrant la clé privée sur la machine cliente.
  • ssh-agent : service qui stocke en mémoire les clés privées pour les utiliser sans retaper la passphrase à chaque connexion.
  • ssh-add : outil pour charger une clé privée dans ssh-agent.

3. Fonctionnement et principes

  • L'authentification SSH par clés évite la saisie répétée de mots de passe et réduit le risque d'attaques par force brute.
  • Le client possède la clé privée ; le serveur conserve la clé publique et vérifie l'authenticité du client lors des connexions.
  • Sous Windows (depuis la mise à jour 2018), OpenSSH est intégré au système : il faut s'assurer qu'il est installé avant de générer des clés.
  • Les clés privées sont des fichiers sensibles : les stocker chiffrés (passphrase) et, pour commodité sécurisée, les charger dans ssh-agent plutôt que laisser la passphrase à répétition.

4. Commandes et manipulations

Regroupées par procédure (commandes telles qu'elles apparaissent dans le document) :

  • Vérifier/installer OpenSSH (interface graphique) :
  • Paramètres > Système > Fonctionnalités facultatives ; si absent : Ajouter une fonctionnalité → sélectionner OpenSSH puis redémarrer.

  • Génération de la paire de clés :

  • ssh-keygen -t ed25519
    (génère une paire de clés et propose l'emplacement ; appuyer sur Entrée pour l'emplacement par défaut ; proposer un passphrase).

  • Vérifier la création des fichiers de clés :

  • ls .SSH
    (affiche les deux fichiers : clé publique et clé privée).

  • Activer et configurer ssh-agent :

  • Get-Service ssh-agent | Set-Service -StartupType Manual
    (active le service en mode démarrage manuel).

  • Démarrer et contrôler l'état de ssh-agent :

  • Start-Service ssh-agent
  • Get-Service ssh-agent
    (démarrer le service puis vérifier qu'il est en exécution).

  • Charger la clé privée dans ssh-agent :

  • SSH-add C:\Users\tito2\SSH\id_ed25519
    (chercher le fichier de clé privée généré et le charger ; saisie du passphrase demandée après l'entrée).

5. Sécurité et bonnes pratiques

  • Ne jamais divulguer la clé privée ; la protéger par une passphrase lors de la génération.
  • Exécuter PowerShell en mode Administrateur pour activer/démarrer le service ssh-agent (droits nécessaires).
  • Tenir compte que ssh-agent est désactivé par défaut : l'activer/démarrer avant d'essayer de charger des clés.
  • Redémarrer l'ordinateur après l'installation d'OpenSSH pour valider l'installation (indiqué dans le cours).
  • Après le chargement d'une clé dans ssh-agent, il faut entrer le passphrase pour valider le chargement.

6. Points essentiels à retenir pour le TSSR

  • Une paire SSH est composée de deux éléments indissociables : clé privée (client) et clé publique (serveur).
  • OpenSSH est intégré à Windows depuis la MAJ 2018 ; sinon l'ajouter via les Fonctionnalités facultatives.
  • La commande de génération principale présentée est ssh-keygen -t ed25519 (propose un passphrase).
  • Les fichiers de clés se trouvent dans le dossier .ssh et doivent être confirmés après génération.
  • ssh-agent stocke les clés privées en mémoire ; il est désactivé par défaut et doit être activé/démarré.
  • ssh-add permet de charger une clé privée dans ssh-agent ; la saisie du passphrase est requise lors du chargement.
  • Toujours exécuter les actions nécessitant configuration de service en mode Administrateur.
  • La clé publique reste sur le serveur ; la clé privée ne doit jamais y être copiée.
  • Protéger la clé privée par une passphrase pour chiffrer le fichier localement.
  • Vérifier l'état du service ssh-agent pour s'assurer du bon fonctionnement avant de charger les clés.

7. Tableau récapitulatif

Élément Rôle principal État par défaut (Windows) Protection recommandée
Clé publique Authentifier le client côté serveur N/A Pas sensible à divulguer
Clé privée Permet l'authentification du client Doit rester locale Chiffrée par passphrase
ssh-agent Stocke les clés en mémoire Désactivé Démarrer et charger via ssh-add
OpenSSH Fournit les outils SSH Intégré depuis 2018 (parfois absent) Installer via Fonctionnalités facultatives
Passphrase Chiffre la clé privée Non défini par défaut Faire toujours un passphrase

8. Vérifications pratiques

  • Dans Paramètres > Système > Fonctionnalités facultatives : vérifier la présence d'OpenSSH (ou utiliser Ajouter une fonctionnalité puis redémarrer si nécessaire).
  • Confirmer la création des deux fichiers (clé publique et clé privée) dans le dossier .ssh après la génération.
  • S'assurer que le service ssh-agent est bien en exécution via la vérification de l'état des services.
  • Après l'opération de chargement dans l'agent, constater la demande de saisie du passphrase comme confirmation du chargement réussi.

9. Flashcards Anki

Quelle commande génère une paire de clés ed25519 ? :: ssh-keygen -t ed25519 Combien de clés compose une paire SSH ? :: 2 (clé privée et clé publique) Où place-t-on généralement la clé publique ? :: Sur le serveur distant Quelle commande affiche les fichiers de clés dans le dossier .ssh ? :: ls .SSH Quel service permet de stocker les clés privées en mémoire pour les sessions ? :: ssh-agent Quelle commande configure ssh-agent en démarrage manuel ? :: Get-Service ssh-agent | Set-Service -StartupType Manual Quelle commande démarre le service ssh-agent ? :: Start-Service ssh-agent Quelle commande charge une clé privée dans ssh-agent (exemple du cours) ? :: SSH-add C:\Users\tito2\SSH\id_ed25519 Que faut-il définir pour chiffrer la clé privée locale lors de sa création ? :: Un passphrase (exemple donné : studitest) Comment installer OpenSSH si absent sur Windows selon le cours ? :: Aller dans Paramètres > Système > Ajouter une fonctionnalité (Fonctionnalités facultatives)