Comment installer et configurer un serveur SSH sur Windows Server

Aperçu

Cet article explique comment installer le serveur OpenSSH sur Windows Server, configurer l’authentification par clé, le service, et le pare-feu, étape par étape.

Variables utilisées

Variable Exemple Remarque
<<SERVER>> 192.168.1.10 Nom d’hôte ou adresse IP de la machine cible

Étape 1 : Installer le serveur OpenSSH

Ouvrez PowerShell avec des privilèges d’administrateur, puis exécutez :

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

Étape 2 : Démarrer et activer le service

Démarrez le service sshd et configurez-le pour qu’il démarre automatiquement :

Start-Service sshd
Set-Service -Name sshd -StartupType Automatic

💡 Remarque
Lors du premier démarrage, les fichiers de configuration et les clés d’hôte sont générés automatiquement :

  • %ProgramData%\ssh\sshd_config (fichier de configuration)
  • %ProgramData%\ssh\ssh_host_* (clés d’hôte)

Modifiez ces fichiers après leur création.

Étape 3 : Configurer le pare-feu

Autorisez le trafic SSH (port 22 par défaut) dans le pare-feu :

New-NetFirewallRule -Name "OpenSSH-Server" -DisplayName "OpenSSH Server (sshd)" `
  -Enabled True -Direction Inbound -Protocol TCP -LocalPort 22 -Action Allow

Étape 4 : Configurer l’authentification par clé (recommandé)

  1. Guide de génération et de configuration des clés côté client

  2. Ajoutez la clé publique dans le fichier authorized_keys :

    • Pour un utilisateur standard : C:\Users\<User>\.ssh\authorized_keys
    • Pour un administrateur : %ProgramData%\ssh\administrators_authorized_keys
  3. Modifiez le fichier sshd_config et vérifiez les lignes suivantes :

    PubkeyAuthentication yes
    AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
    

Étape 5 : Première connexion et vérification

Depuis le client, connectez-vous :

ssh Administrator@<<SERVER>>

Lors de la première connexion, un avertissement de clé d’hôte apparaîtra.
Une fois connecté, exécutez whoami pour vérifier que vous êtes bien l’utilisateur attendu.

Étape 6 : Renforcement de la sécurité

Modifiez sshd_config pour restreindre les accès :

Port 2222
AllowGroups SSHAdmins
AllowUsers Administrator deployuser
PasswordAuthentication no
KbdInteractiveAuthentication no
PubkeyAuthentication yes
  • Port 2222 : changer le port réduit les attaques automatisées.
  • AllowGroups SSHAdmins : limite l’accès aux membres d’un groupe défini.
  • AllowUsers Administrator deployuser : restreint l’accès à des comptes précis.
  • PasswordAuthentication no et KbdInteractiveAuthentication no : désactivent l’authentification par mot de passe.
  • PubkeyAuthentication yes : force l’usage des clés publiques.

ℹ️ Note
Sur Windows Server 2025 et versions ultérieures, les restrictions de groupe SSH sont activées par défaut.
Assurez-vous que le groupe ou les utilisateurs existent et disposent de droits minimaux nécessaires.

Activez la journalisation détaillée pour audit :

LogLevel VERBOSE

Étape 7 : Vérifier les journaux

Affichez les événements récents avec PowerShell :

Get-WinEvent -LogName OpenSSH/Operational `
  | Where-Object { $_.TimeCreated -ge (Get-Date).AddHours(-1) } `
  | Select-Object TimeCreated, Id, LevelDisplayName, Message

Pour vérifier les journaux disponibles :

wevtutil el | findstr OpenSSH

Spécifiez le nom exact obtenu avec -LogName.

Conclusion

En configurant OpenSSH sur Windows Server, vous pouvez administrer votre serveur à distance de manière sécurisée, comme sur un système Linux.
En combinant authentification par clé, pare-feu et configuration fine du service, vous garantissez un accès distant fiable et protégé.