Windows Server : Installer OpenSSH Server en PowerShell

ssh_logo



Introduction



Dans cet article, nous allons voir comment mettre en oeuvre un serveur OpenSSH sur Windows Server 2019.
L'avantage est de pouvoir se connecter de manière sécurisée en ligne de commande et effectuer des actions en PowerShell

Installer OpenSSH Server



Dans un premier temps, on va identifier le nom du service SSH avec Get-WindowsCapability :

Code TEXT :
Get-WindowsCapability -Online | ? Name -like "*ssh*"


Le retour se présente ainsi :

Code TEXT :
Name  : OpenSSH.Client~~~~0.0.1.0
State : Installed
Name  : OpenSSH.Server~~~~0.0.1.0
State : NotPresent


On va donc installer avec PowerShell de cette façon le serveur OpenSSH :

Code TEXT :
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0


Configuration du démarrage Automatique



Après installation, la console PowerShell indique :

Code TEXT :
Path          :
Online        : True
RestartNeeded : False


Il nous reste à activer et démarrer le service OpenSSH.

En effet, avec Get-Service on constate que le service est stoppé :

Code TEXT :
Get-Service sshd


Code TEXT :
Status   Name               DisplayName
------   ----               -----------
Stopped  sshd               OpenSSH SSH Server


On l'active et on le démarre :

Code TEXT :
Set-Service sshd -StartupType Automatic
Start-Service sshd


Après relance de Get-Service sshd, on constate que c'est fonctionnel :

Code TEXT :
Status   Name               DisplayName
------   ----               -----------
Running  sshd               OpenSSH SSH Server


Tester



On peut tester en se connectant :

Code BASH :
ssh 127.0.0.1


Code TEXT :
The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established.
ECDSA key fingerprint is SHA256:NHdoVuvuU5tbm62f0A1PVB4PCOYssV6aZw96MQNV6Ho.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '127.0.0.1' (ECDSA) to the list of known hosts.
[email protected]'s password:
Microsoft Windows [version 10.0.17763.737]
(c) 2018 Microsoft Corporation. Tous droits réservés.
[email protected] C:\Users\Administrateur>


Avec la commande SET, on voit les variables SSH :

Code BASH :
SSH_CLIENT=127.0.0.1 49741 22
SSH_CONNECTION=127.0.0.1 49741 127.0.0.1 22
SSH_TTY=windows-pty


Pare-Feu



Il sera peut être nécessaire d'ouvrir le pare-feu. Chez moi je n'ai pas eu besoin.

Voici la commande PowerShell à exécuter au cas où :

Code TEXT :
New-NetFirewallRule -DisplayName "SSH" -Profile Private -Direction Inbound -Action Allow -Protocol TCP -LocalPort 22


Configuration



Le fichier de configuration du serveur OpenSSH est situé dans

Code BASH :
%ProgramData%\ssh\sshd_config


Il est le même que sous Linux évidemment; au niveau des options.