Dans ce tutoriel, je vais vous expliquer comment installer le serveur OpenSSH (SSH) sur Windows Serveur afin de l’administrer à distance comme on pourrait le faire pour un serveur Linux et aussi transférer des fichiers.
Il y a plusieurs raisons d’utiliser OpenSSH sur Windows Serveur en voici quelqu’une :
- Uniformisation des connexions à distance comme on est un environnement mixte Windows / Linux
- Utilisation d’outils d’automatisation plus facile comme Ansible, Jenkins, Rundeck ….
- Moins « compliquer » à configurer
- Utilisation d’une paire de clé privé / publique pour s’authentifier …
Pour ma part ce qui m’a poussé en premier à déployer OpenSSH sur Windows Serveur est l’utilisation d’Ansible qui est plus facile en SSH sur Windows que de passer par WinRM qui peut être « galère » à installer et configurer.
Par la suite, l’administration en SSH est aussi plus rapide que de passer par du Remote PowerShell
Dans ce tutoriel, on va voir plusieurs méthode d’installation, pour les serveurs avant Windows Serveur 2019 et pour les serveurs à partir de Windows Serveur 2019, version depuis laquelle, OpenSSH est inclus dans Windows en tant que fonctionnalité facultative.
Installer OpenSSH sur Windows Serveur 2012R2 et Windows Serveur 2016
Afin de facilité l’installation, on va passer par l’utilitaire Chocolatey.
Commencer par lancer une fenêtre PowerShell.
Si vous ne l’avez pas encore, installer Chocolatey :
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
Pour installer OpenSSH serveur :
choco install openssh -y
Pour installer la dernière version :
choco install openssh --pre -y
Pour le moment, les fichiers ont été téléchargés et copier sur le serveur.
Aller dans le dossier où se trouve les fichiers du serveur OpenSSH :
Set-Location "C:\Program Files\OpenSSH-Win64"
Exécuter le fichier suivant pour installer le service :
.\install-sshd.ps1
Une fois le service, on va configurer celui-ci pour démarrer automatiquement :
Set-Service sshd -StartupType "Automatic"
Démarrer le service OpenSSH :
Start-Service sshd
Vous trouverez ici une méthode alternative : OpenSSH client et serveur – installation sur Windows Serveur 2012R2 et 2016.
Installer OpenSSH sur Windows Serveur 2019 et plus récent
Cette fonctionnalité étant intégré Windows Serveur, on va la Cmdlet Add-WindowsCapability.
Lancer une invite de commande PowerShell et entrer cette commande :
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Configurer le service pour démarrer automatiquement :
Set-Service sshd -StartupType "Automatic"
Démarrer le service :
Start-Service sshd
Se connecter à Windows Serveur en SSH
La connexion fonctionne comme pour un serveur Linux :
Depuis un client SSH entrer la commande suivante :
ssh user@ip
Dans le cas où d’un compte utilisateur Active Directory :
ssh '[email protected]'@ip
Configurer OpenSSH pour utiliser une paire de clé privée/publique
Pour finir ce tutoriel, je vais vous expliquer comment configurer le serveur SSH sur Windows pour utiliser une paire de clé privé / publique pour éviter d’avoir à saisir le mot de passe.
Cette configuration est aussi pratique quand on souhaite utiliser Ansible ou Rundeck par exemple.
Pour commencer, on va configurer le serveur SSH, on trouve la configuration du serveur SSH sur Windows dans le fichier sshd_config
à l’emplacement suivant : C:\ProgramData\ssh
.
Ouvrir le fichier et effectuer les modifications suivantes :
Décommenter la paramètre StrictModes
et passer le à no
.
StrictModes no
Décommenter PubkeyAuthentication
pour activer l’authentification par clé :
PubkeyAuthentication yes
Commenter les lignes suivantes qui se trouve à la fin du fichier :
#Match Group administrators
# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
Enregistrer le fichier et fermer le.
Redémarrer le service pour la prise en compte de la configuration :
Restart-Service sshd
Maintenant, on va configurer la clé publique sur le serveur, le fonctionnement est identique que sur Linux.
Dans le dossier de l’utilisateur avec lequel vous allez vous connectez à distance créer un dossier .ssh :
C:\Users\<User>\.ssh
Si le dossier n’existe pas, passer en ligne de commande, l’explorateur ne veut pas créer un fichier qui commence par un
.
Ensuite dans le dossier .ssh
créer un fichier nommer authorized_keys
et dans celui-ci coller la clé publique (id_rsa.pub).
Vous savez maintenant comment configurer un serveur openSSH sur Windows Serveur pour l’administrer à distance.