Installer, tester et désinstaller un serveur SFTP basé sur OpenSSH sous Windows | INTROSERV
EUR
european

EUR

usa

USD

French Fr
Ex. VAT Ex. VAT 0%

Installer, tester et désinstaller un serveur SFTP basé sur OpenSSH sous Windows

Ce guide s'applique à Windows Server 2019, 2022 et 2025, qui incluent OpenSSH Server en tant que fonctionnalité facultative intégrée. Aucun téléchargement tiers n'est nécessaire.

Guide pas à pas

Installation de la fonctionnalité OpenSSH Server

1) Lancez PowerShell en tant qu'administrateur : Démarrer, tapez "PowerShell" → cliquez avec le bouton droit sur "PowerShell" → Exécuter en tant qu'administrateur.

2) Vérifiez si la fonctionnalité OpenSSH Server est déjà installée :

Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*' | Select-Object Name, State

Vérification de l'installation de la fonctionnalité OpenSSH Server
Remarque : Cette commande répertorie à la fois OpenSSH.Client et OpenSSH.Server. Veillez à vérifier spécifiquement l'état d'OpenSSH.Server, le composant client est peut-être déjà installé et n'est pas l'objet de ce guide.

Si OpenSSH.Server affiche l'état State : NotPresent, installez-le :

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

Installation de la fonctionnalité OpenSSH Server dans PowerShell
Remarque : Windows installe la fonctionnalité intégrée OpenSSH Server dans C:\Windows\System32\OpenSSH\. N'installez pas OpenSSH manuellement directement dans C:\Windows, cela enfreint les conventions de répertoires de Windows et peut entraîner des problèmes d'autorisations.

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

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

4) Vérifiez que le service est en cours d'exécution :

Get-Service sshd

État du service sshd d'OpenSSH affichant Running

Le champ Status doit afficher Running. Pour confirmer également que le type de démarrage est défini sur Automatic :

Get-CimInstance Win32_Service -Filter "Name='sshd'" | Select-Object StartMode

StartMode du service sshd affichant Auto

5) Vérifiez l'emplacement du binaire OpenSSH installé et les informations de version :

Get-Command sshd | Select-Object Source (Get-Command sshd).FileVersionInfo

Chemin et informations de version du binaire sshd

Le champ Source confirme que le chemin d'installation correspond à C:\Windows\System32\OpenSSH\sshd.exe ; FileVersionInfo affiche la version d'OpenSSH (par exemple, OpenSSH_8.1p1, FileVersion 8.1.0.1 sous Windows Server 2022).

Ouverture du port du pare-feu

Par défaut, l'installation de la fonctionnalité OpenSSH Server crée normalement automatiquement une règle de pare-feu entrante nommée OpenSSH-Server-In-TCP. Vérifiez qu'elle existe et qu'elle est activée :

Get-NetFirewallRule -Name *OpenSSH-Server*

Règle de pare-feu entrante OpenSSH activée

Si la règle est absente, créez-la manuellement (notez le nom de règle différent, cette règle créée manuellement est distincte de la règle OpenSSH-Server-In-TCP générée automatiquement) :

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

Vérifiez que le port est réellement ouvert et à l'écoute :

Test-NetConnection -ComputerName localhost -Port 22

Test-NetConnection réussi sur le port 22

Un résultat TcpTestSucceeded : True confirme que le service est à l'écoute localement. Cela ne confirme pas que le pare-feu laisse passer le trafic provenant de l'extérieur, pour le vérifier complètement, exécutez la même commande depuis une autre machine du réseau, en remplaçant localhost par l'adresse IP du serveur.

Configuration de sshd_config pour SFTP

Le fichier de configuration se trouve à l'emplacement :

C:\ProgramData\ssh\sshd_config

Ouvrez-le dans un éditeur de texte avec des droits d'administrateur (par exemple, Notepad exécuté en tant qu'administrateur) et vérifiez que les paramètres suivants sont présents (ou configurez-les selon vos besoins) :

Port 22 PasswordAuthentication yes Subsystem sftp sftp-server.exe

Ligne Subsystem sftp dans sshd_config
Remarque de sécurité : PasswordAuthentication yes est indiqué ici pour garder ce guide simple, mais pour un serveur de production exposé à Internet, l'authentification par clés avec PasswordAuthentication no est le choix le plus sûr. Consultez le paramètre facultatif AuthorizedKeysFile ci-dessous si vous prévoyez d'utiliser l'authentification par clés.
Important : La ligne Subsystem sftp définit quel binaire gère les sessions SFTP. Sans cette ligne présente et non commentée, les connexions SSH fonctionneront, mais le transfert de fichiers SFTP échouera.

Par défaut, cette ligne est déjà présente et non commentée dans le fichier de configuration de la fonctionnalité intégrée. Si elle est absente ou commentée avec #, ajoutez-la ou décommentez-la, puis enregistrez le fichier.

Remarque : Les versions plus récentes d'OpenSSH prennent également en charge Subsystem sftp internal-sftp, un gestionnaire intégré qui n'appelle pas de binaire externe :

Subsystem sftp internal-sftp

sftp-server.exe et internal-sftp fonctionnent tous deux ; ce guide utilise sftp-server.exe car il s'agit de la valeur fournie par défaut.

Paramètres facultatifs que vous pourriez également vouloir inclure dans sshd_config :

# Valeur par defaut, deja definie ; indiquee ici a titre de reference si l'authentification par cles ne fonctionne pas # AuthorizedKeysFile .ssh/authorized_keys # Restreindre l'acces a des utilisateurs specifiques (facultatif) # AllowUsers username1 username2 # Journalisation SyslogFacility LOCAL0 LogLevel INFO

Remarque : Pour les comptes membres du groupe local Administrators, le portage Windows d'OpenSSH utilise un fichier différent : C:\ProgramData\ssh\administrators_authorized_keys, et non .ssh\authorized_keys dans le profil de l'utilisateur. Si l'authentification par clés pour un compte administrateur ne fonctionne pas comme prévu, vérifiez plutôt ce fichier.

Après chaque modification de sshd_config, redémarrez le service pour l'appliquer :

Restart-Service sshd

Vérification de la connexion SFTP à l'aide de WinSCP

Installez et exécutez le client gratuit WinSCP. Dans la fenêtre des paramètres de connexion, sélectionnez le protocole de transfert de fichiers SFTP, saisissez le nom d'hôte ou l'adresse IP du serveur dans le champ Host name, laissez le champ Port number sur 22 (sauf si vous avez configuré un autre port) et saisissez les identifiants du compte Windows avec lequel vous vous connectez.

Fenêtre de connexion de WinSCP avec le protocole SFTP sélectionné

Si tout est correctement configuré, le client se connecte au serveur SFTP et affiche le contenu du répertoire personnel de l'utilisateur (le répertoire de profil par défaut). Par défaut, l'utilisateur arrive dans C:\Users\<username>. Les fichiers peuvent ensuite être transférés en toute sécurité entre le serveur et le client via le protocole SFTP.

WinSCP connecté au serveur SFTP affichant le répertoire personnel

Désinstallation de la fonctionnalité OpenSSH Server

1) Lancez PowerShell en tant qu'administrateur.

2) Arrêtez le service sshd avant de supprimer la fonctionnalité, la supprimer alors que le service est encore en cours d'exécution ou activement utilisé peut échouer ou se bloquer :

Stop-Service sshd

3) Supprimez la fonctionnalité :

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

4) (Facultatif) Supprimez la règle de pare-feu. Cela couvre à la fois la règle créée automatiquement et celle créée manuellement, au cas où l'une d'elles existerait :

Remove-NetFirewallRule -Name OpenSSH-Server-In-TCP -ErrorAction SilentlyContinue Remove-NetFirewallRule -DisplayName 'OpenSSH Server (sshd)' -ErrorAction SilentlyContinue

5) (Facultatif) Suppression de la configuration : vous pouvez supprimer uniquement le fichier de configuration ou effectuer un nettoyage complet, y compris les clés d'hôte.

Pour supprimer uniquement sshd_config sans toucher aux clés d'hôte :

Remove-Item -Path 'C:\ProgramData\ssh\sshd_config' -Force

Pour un nettoyage complet, y compris les clés d'hôte, supprimez plutôt l'intégralité du dossier de configuration :

Remove-Item -Path 'C:\ProgramData\ssh' -Recurse -Force

Avertissement : La suppression de l'intégralité du dossier supprime également de façon permanente les clés d'hôte du serveur. Les clients qui se connectent après une réinstallation traiteront le serveur comme un nouvel hôte SSH non reconnu. Ne faites cela que si vous ne prévoyez pas de réinstaller OpenSSH Server avec la même configuration ultérieurement.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA