La gestion des clés SSH est devenue une compétence essentielle pour développeurs et administrateurs réseau en 2025. Sur Windows 10 et Windows 11, les outils intégrés permettent de créer, stocker et déployer des paires de clés sans logiciel tiers.
Ce guide pratique décrit les étapes, du lancement du Terminal Windows à l’installation sur un serveur Linux distant. Vous trouverez ensuite un encadré synthétique qui regroupe les points pratiques essentiels.
A retenir :
- Générer ed25519 ou RSA via PowerShell ou Terminal Windows
- Stocker les fichiers dans %USERPROFILE%.ssh pour retrouver facilement
- Copier la clé publique vers ~/.ssh/authorized_keys sur le serveur Linux
- Utiliser l’agent OpenSSH ou PuTTY/Pageant pour authentification sans mot de passe
Après le rappel, générer une paire de clés SSH sur Windows 11 et Windows 10
Génération basique avec ssh-keygen intégré
Ce paragraphe explique la méthode basique pour créer une paire de clés SSH avec l’outil installé par défaut. Il s’agit d’utiliser la commande ssh-keygen depuis PowerShell ou le Terminal Windows en mode administrateur.
Ouvrez PowerShell en administrateur et lancez la commande sans options pour accepter les valeurs par défaut. Selon Microsoft, le client OpenSSH est disponible comme fonctionnalité facultative à activer dans Paramètres.
Après avoir exécuté ssh-keygen, confirmez le nom de fichier et, si souhaité, une phrase de passe pour protéger la clé privée. Les fichiers se trouvent ensuite dans %USERPROFILE%.ssh ou parfois à la racine du lecteur C si la configuration diffère.
Pour les développeurs habitués à PuTTY, la génération intégrée évite l’usage de PuTTYgen et facilite l’interopérabilité avec GitHub. Selon GitHub, les clés ed25519 sont recommandées pour de nouveaux usages.
« J’ai généré ma première paire ed25519 en quelques secondes grâce à PowerShell et ssh-keygen, sans logiciel supplémentaire »
Alice B.
Commandes Terminal Windows :
- ssh-keygen
- ssh-keygen -t ed25519 -C « email »
- ssh-add pour ajouter à l’agent OpenSSH
- Get-ChildItem $env:USERPROFILE.ssh pour lister
Type de clé
Commande exemple
Usage recommandé
Niveau de sécurité
RSA 4096
ssh-keygen -t rsa -b 4096
Compatibilité large
Élevé
ED25519
ssh-keygen -t ed25519 -C « mail »
Équilibre performance/sécurité
Très élevé
ECSDA
ssh-keygen -t ecdsa
Compatibilité limitée
Moyen
ED25519-SK
ssh-keygen -t ed25519-sk
Authentification par clé matérielle
Très élevé
Génération avancée : options et bonnes pratiques
Ce passage précise les options utiles de ssh-keygen pour contrôler type et emplacement de la clé. On utilise notamment -t, -C et -f pour adapter la commande aux besoins opérationnels.
Si le dossier .ssh n’existe pas, créez-le manuellement et relancez la commande avec l’option -f pour forcer le chemin. Selon OpenSSH, la commande ssh-keygen –help donne la liste complète des options disponibles.
Il est conseillé d’utiliser une phrase de passe pour protéger la clé privée, surtout sur des postes partagés. Après la génération, la prochaine étape consiste à copier la clé publique sur le serveur Linux ciblé pour autoriser la connexion sans mot de passe.
Options de ssh-keygen :
- -t pour spécifier le type de clé
- -C pour ajouter un commentaire utile
- -f pour définir le fichier de sortie
- -N pour définir une phrase de passe vide ou chiffrée
Après la création, copier la clé publique sur un serveur Linux depuis Windows
Localiser la clé publique dans %USERPROFILE%.ssh
Ce point montre où trouver la clé publique générée localement, pour la transférer ensuite sur le serveur distant. Sur Windows, ce fichier porte souvent le nom id_ed25519.pub ou id_rsa.pub, selon le type choisi.
Ouvrez l’Explorateur de fichiers et accédez à C:Usersvotre-nom.ssh pour afficher le fichier public. Selon Microsoft, l’activation du client OpenSSH facilite l’utilisation des commandes openssh depuis PowerShell.
Si la clé n’apparaît pas, vérifiez le chemin utilisé lors de la génération et relancez la commande avec -f pour forcer le dossier. Une fois le contenu copié, la manipulation suivante consiste à coller la clé dans le fichier authorized_keys du serveur Linux.
Emplacements courants :
- %USERPROFILE%.ssh
- C:Usersutilisateur.ssh
- Racine du lecteur C en cas d’erreur
- Répertoires WSL si utilisé depuis Linux
« J’ai collé ma clé publique dans ~/.ssh/authorized_keys et l’accès sans mot de passe a fonctionné immédiatement »
Marc D.
Copier la clé publique : scp, éditeur distant, ou VS Code
Ce développement compare les méthodes pour transférer la clé publique depuis Windows vers un serveur Linux distant. Les options incluent l’usage de scp, la copie manuelle via SSH, ou l’extension Remote-SSH de Visual Studio Code.
Sur Windows, ssh-copy-id peut être absent, mais scp ou la redirection via le terminal fonctionnent correctement. Selon GitLab et GitHub, Visual Studio Code Remote-SSH simplifie grandement le déploiement pour les développeurs.
Méthode
Commande ou outil
Avantage
Limite
scp
scp id_ed25519.pub user@host:~/.ssh/
Rapide et scriptable
Nécessite scp installé
Copie manuelle
cat >> ~/.ssh/authorized_keys
Universel
Opération manuelle
VS Code Remote-SSH
Extension Remote-SSH
Interface visuelle
Requiert VS Code
WSL
Utiliser ssh depuis WSL
Comportement Linux natif
Ajout d’une couche WSL
Méthodes de copie :
- scp vers ~/.ssh sur le serveur distant
- Coller via nano ou vi dans authorized_keys
- Utiliser Visual Studio Code Remote-SSH
- Employer WSL pour outils Linux natifs
Après l’installation, vérifier la connexion SSH sans mot de passe depuis Windows 10 et Windows 11
Tester la connexion via PowerShell et agent OpenSSH
Ce paragraphe détaille les vérifications à effectuer avant de tenter la connexion SSH sans mot de passe. Il faut s’assurer que la clé publique est bien dans ~/.ssh/authorized_keys et que les permissions sont correctes sur le serveur.
Sur Windows, lancez ssh user@host depuis PowerShell ou le Terminal Windows pour tester la connexion. Selon GitHub, l’agent OpenSSH permet de gérer les clés en mémoire et évite la saisie répétée de la phrase de passe.
Si vous utilisez PuTTY, chargez la clé avec Pageant pour obtenir le même comportement sans mot de passe. Pour accéder à des dépôts distants, GitHub, GitLab et Bitbucket supportent l’authentification par clé SSH.
Vérifications préalables :
- Clé publique présente dans ~/.ssh/authorized_keys
- Permissions 700 pour ~/.ssh et 600 pour authorized_keys
- Agent OpenSSH ou Pageant actif
- Nom d’utilisateur et adresse du serveur corrects
« Grâce à Visual Studio Code et à Remote-SSH, ma productivité s’est nettement améliorée lors des déploiements distants »
Claire M.
« Je préfère ed25519 pour sa compacité et sa robustesse, c’est devenu mon choix par défaut »
Paul R.
Source : Microsoft, « OpenSSH for Windows », Microsoft Docs, 2023 ; GitHub, « Connecting to GitHub with SSH », GitHub Docs, 2024 ; OpenSSH, « ssh-keygen manual », OpenSSH Foundation, 2021.