Installation, test et désinstallation d'un serveur SFTP basé sur OpenSSH sous Windows | INTROSERV
EUR
european

EUR

usa

USD

French Fr
Ex. VAT Ex. VAT 0%

Comment configurer un serveur SFTP sous Windows avec OpenSSH

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

Guide étape par étape

Installation de la fonctionnalité Serveur OpenSSH

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

Checking whether the OpenSSH Server feature is installed

Tip

La liste affiche à 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 concerné par ce guide.

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

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

Installing the OpenSSH Server feature in PowerShell

Warning

Windows installe la fonctionnalité intégrée « Serveur OpenSSH » dans le répertoire C:\Windows\System32\OpenSSH\. N’installez pas OpenSSH manuellement directement dans C:\Windows, car cela enfreint les conventions de répertoires de Windows et peut entraîner des problèmes d’autorisation.

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

OpenSSH sshd service status showing Running

Le champ « Status » (État) doit indiquer « Running » (En cours d’exécution). Pour vérifier également que le type de démarrage est défini sur « Automatic » (Automatique) :

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

sshd service StartMode showing 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

sshd binary path and version information

Le champ « Source » confirme que le chemin d’installation correspond à C:\Windows\System32\OpenSSH\sshd.exe ; « FileVersionInfo » indique 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é « Serveur OpenSSH » crée généralement 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*

OpenSSH inbound firewall rule enabled

Si la règle est manquante, créez-la manuellement (notez que le nom de la règle est 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 bien ouvert et à l'écoute :

Test-NetConnection -ComputerName localhost -Port 22

Test-NetConnection to port 22 succeeded

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

Configuration du fichier sshd_config pour SFTP

Le fichier de configuration se trouve à l’emplacement suivant :

C:\ProgramData\ssh\sshd_config

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

Port 22 PasswordAuthentication yes Subsystem sftp sftp-server.exe

sshd_config Subsystem sftp line

Info

L'option« PasswordAuthentication yes » est indiquée ici par souci de simplicité dans ce guide, mais pour un serveur de production exposé à Internet, l'authentification par clé avec « PasswordAuthentication no » constitue le choix le plus sûr. Reportez-vous au paramètre facultatif « AuthorizedKeysFile » ci-dessous si vous prévoyez d'utiliser l'authentification par clé.

Warning

La ligne « Subsystem sftp » définit quel binaire gère les sessions SFTP. Si cette ligne n’est pas présente ou n’est pas dé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 manquante ou commentée avec #, ajoutez-la ou décommentez-la, puis enregistrez le fichier.

Info

Les versions récentes d’OpenSSH prennent également en charge le sous-système `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 les deux ; ce guide utilise sftp-server.exe car c'est la valeur fournie par défaut.

Paramètres facultatifs que vous pouvez également ajouter dans sshd_config:

# Default value, already set; shown here for reference if key-based authentication isn't working # AuthorizedKeysFile .ssh/authorized_keys # Restrict access to specific users (optional) # AllowUsers username1 username2 # Logging SyslogFacility LOCAL0 LogLevel INFO

Info

Pour les comptes membres du groupe Administrateurs local, 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é pour un compte administrateur ne fonctionne pas comme prévu, vérifiez plutôt ce fichier.

Après toute modification apportée au fichier sshd_config, redémarrez le service pour l'appliquer :

Restart-Service sshd

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

Installez et lancez 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 « Nom d’hôte », laissez la valeur 22 dans le champ « Numéro de port » (sauf si vous avez configuré un autre port), puis saisissez les identifiants du compte Windows avec lequel vous vous connectez.

WinSCP login window with SFTP protocol selected

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 accède à C:\Users\<nom d’utilisateur>. Les fichiers peuvent alors être transférés en toute sécurité entre le serveur et le client via le protocole SFTP.

WinSCP connected to the SFTP server showing the home directory

Désinstallation de la fonctionnalité « Serveur OpenSSH »

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 en cours d’utilisation peut entraîner un échec ou un blocage :

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 concerne à la fois la règle créée automatiquement et celle créée manuellement, si l’une ou l’autre existe :

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 le fichier 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

Warning

La suppression de l'intégralité du dossier entraîne également la suppression définitive des clés hôtes du serveur. Les clients se connectant après la réinstallation considéreront le serveur comme un nouvel hôte SSH non reconnu. Ne procédez ainsi 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