Windows 🪟
Installation
Depuis quelques versions de Windows, il est dorénavant possible d'installer un serveur SSH et accéder à la ligne de commande avec ceci plutôt que par PowerShell Remoting. Cette fonctionnalité peut être installée/activée dans les fonctionnalités avancées/facultative mais peut aussi être simplement activée par PowerShell avec les commandes suivantes exécutées en administrateur.
# Trouver la version à installer
Get-WindowsCapability -Online | Where-Object Name -like "OpenSSH.Server*"
#
# Installation du serveur
Add-WindowsCapability -Online -Name OpenSSH.server~~~~0.0.1.0
# Un redémarrage sera nécessaire ici
#
# Activation du service
Set-Service -Name sshd -StartupType 'Automatic'
Start-Service -Name sshd
Configuration
Tout comme sous Linux, sa configuration peut être trouvée dans un fichier sshd_config situé dans C:\ProgramData\ssh\. La structure et les options du fichier sont sensiblement les mêmes que pour la configuration du serveur SSH sous Linux à quelques exceptions près telles que X11Forwarding puisque ces paramètres ne s'appliquent pas à Windows.
Il faudra par contre ajouter une règle au pare-feu pour permettre les connexions entrantes au port configuré pour SSH avec la commande suivante puisque le pare-feu Windows est activé par défaut et bloque les communications entrantes à la plupart des ports.
# Ajout d'une règle de pare-feu permettant les connexions entrantes au port SSH
New-NetFirewallRule -DisplayName "SSH Entrant" -Direction Inbound -LocalPort 22 -Protocol TCP -Action Allow
Il est aussi nécessaire d'ajouter les utilisateurs ayant l'autorisation de se connecter en SSH au groupe correspondant. Ces commandes ajouteraient "Bob" aux utilisateurs ayant la permission de se connecter à la machine par SSH
PS C:\WINDOWS\system32> Get-LocalGroup | Where-Object Name -like *SSH*
Name Description
---- -----------
Utilisateurs OpenSSH Les membres de ce groupe peuvent se connecter à cet ordinateur à l’aide de SSH.
PS C:\WINDOWS\system32> Get-LocalGroupMember -Group "Utilisateurs OpenSSH"
PS C:\WINDOWS\system32> Add-LocalGroupMember -Group "Utilisateurs OpenSSH" -Member "bob"
PS C:\WINDOWS\system32> Get-LocalGroupMember -Group "Utilisateurs OpenSSH"
ObjectClass Name PrincipalSource
----------- ---- ---------------
Utilisateur DESKTOP-D67ERFV\Bob Local