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)