Installieren, Testen und Deinstallieren eines OpenSSH-basierten SFTP-Servers unter Windows | INTROSERV
EUR
european

EUR

usa

USD

German De
Ex. VAT Ex. VAT 0%

Installieren, Testen und Deinstallieren eines OpenSSH-basierten SFTP-Servers unter Windows

Diese Anleitung gilt für Windows Server 2019, 2022 und 2025, die OpenSSH Server als integrierte optionale Funktion enthalten. Es ist kein Download von Drittanbietern erforderlich.

Schritt-für-Schritt-Anleitung

Installieren der OpenSSH-Server-Funktion

1) Starten Sie PowerShell als Administrator: Start, geben Sie "PowerShell" ein → Rechtsklick auf "PowerShell" → Als Administrator ausführen.

2) Prüfen Sie, ob die OpenSSH-Server-Funktion bereits installiert ist:

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

Prüfen, ob die OpenSSH-Server-Funktion installiert ist
Hinweis: Hier werden sowohl OpenSSH.Client als auch OpenSSH.Server aufgeführt. Achten Sie darauf, gezielt den Status von OpenSSH.Server zu prüfen, die Client-Komponente ist möglicherweise bereits installiert und ist nicht Gegenstand dieser Anleitung.

Wenn bei OpenSSH.Server der Status State : NotPresent angezeigt wird, installieren Sie die Funktion:

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

Installieren der OpenSSH-Server-Funktion in PowerShell
Hinweis: Windows installiert die integrierte OpenSSH-Server-Funktion unter C:\Windows\System32\OpenSSH\. Installieren Sie OpenSSH nicht manuell direkt unter C:\Windows, dies verstößt gegen die Windows-Verzeichniskonventionen und kann zu Berechtigungsproblemen führen.

3) Starten Sie den Dienst sshd und legen Sie fest, dass er automatisch startet:

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

4) Überprüfen Sie, ob der Dienst läuft:

Get-Service sshd

Status des OpenSSH-Dienstes sshd zeigt Running

Im Feld Status sollte Running stehen. Um zusätzlich zu bestätigen, dass der Starttyp auf Automatic gesetzt ist:

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

StartMode des sshd-Dienstes zeigt Auto

5) Überprüfen Sie den Speicherort und die Versionsinformationen der installierten OpenSSH-Binärdatei:

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

Pfad und Versionsinformationen der sshd-Binärdatei

Das Feld Source bestätigt, dass der Installationspfad C:\Windows\System32\OpenSSH\sshd.exe entspricht; FileVersionInfo zeigt die OpenSSH-Version an (zum Beispiel OpenSSH_8.1p1, FileVersion 8.1.0.1 unter Windows Server 2022).

Öffnen des Firewall-Ports

Bei der Installation der OpenSSH-Server-Funktion wird normalerweise automatisch eine eingehende Firewall-Regel mit dem Namen OpenSSH-Server-In-TCP erstellt. Bestätigen Sie, dass sie vorhanden und aktiviert ist:

Get-NetFirewallRule -Name *OpenSSH-Server*

Eingehende OpenSSH-Firewall-Regel aktiviert

Falls die Regel fehlt, erstellen Sie sie manuell (beachten Sie den abweichenden Regelnamen, diese manuell erstellte Regel ist von der automatisch generierten Regel OpenSSH-Server-In-TCP getrennt):

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

Überprüfen Sie, ob der Port tatsächlich geöffnet ist und auf Verbindungen wartet:

Test-NetConnection -ComputerName localhost -Port 22

Test-NetConnection zu Port 22 erfolgreich

Ein Ergebnis von TcpTestSucceeded : True bestätigt, dass der Dienst lokal auf Verbindungen wartet. Dies bestätigt nicht, dass die Firewall Datenverkehr von außen durchlässt, um dies vollständig zu überprüfen, führen Sie denselben Befehl von einem anderen Rechner im Netzwerk aus und ersetzen Sie localhost durch die IP-Adresse des Servers.

Konfigurieren von sshd_config für SFTP

Die Konfigurationsdatei befindet sich unter:

C:\ProgramData\ssh\sshd_config

Öffnen Sie sie in einem Texteditor mit Administratorrechten (zum Beispiel Notepad als Administrator ausgeführt) und stellen Sie sicher, dass die folgenden Einstellungen vorhanden (oder nach Bedarf konfiguriert) sind:

Port 22 PasswordAuthentication yes Subsystem sftp sftp-server.exe

Zeile Subsystem sftp in sshd_config
Sicherheitshinweis: PasswordAuthentication yes wird hier verwendet, um diese Anleitung einfach zu halten, aber für einen produktiv im Internet erreichbaren Server ist die schlüsselbasierte Authentifizierung mit PasswordAuthentication no die sicherere Wahl. Siehe die optionale Einstellung AuthorizedKeysFile weiter unten, falls Sie die schlüsselbasierte Authentifizierung verwenden möchten.
Wichtig: Die Zeile Subsystem sftp legt fest, welche Binärdatei SFTP-Sitzungen verarbeitet. Ohne diese vorhandene und nicht auskommentierte Zeile funktionieren SSH-Verbindungen zwar, aber die SFTP-Dateiübertragung schlägt fehl.

Standardmäßig ist diese Zeile in der Konfigurationsdatei der integrierten Funktion bereits vorhanden und nicht auskommentiert. Falls sie fehlt oder mit # auskommentiert ist, fügen Sie sie hinzu oder entfernen Sie das Kommentarzeichen und speichern Sie anschließend die Datei.

Hinweis: Neuere OpenSSH-Versionen unterstützen auch Subsystem sftp internal-sftp, einen integrierten Handler, der keine externe Binärdatei aufruft:

Subsystem sftp internal-sftp

Sowohl sftp-server.exe als auch internal-sftp funktionieren; diese Anleitung verwendet sftp-server.exe, da dies der standardmäßig ausgelieferte Wert ist.

Optionale Einstellungen, die Sie ebenfalls in sshd_config aufnehmen möchten:

# Standardwert, bereits gesetzt; hier zur Referenz angegeben, falls die schluesselbasierte Authentifizierung nicht funktioniert # AuthorizedKeysFile .ssh/authorized_keys # Zugriff auf bestimmte Benutzer beschraenken (optional) # AllowUsers username1 username2 # Protokollierung SyslogFacility LOCAL0 LogLevel INFO

Hinweis: Für Konten, die Mitglieder der lokalen Gruppe Administratoren sind, verwendet die Windows-Portierung von OpenSSH eine andere Datei: C:\ProgramData\ssh\administrators_authorized_keys, nicht .ssh\authorized_keys im Benutzerprofil. Falls die schlüsselbasierte Authentifizierung für ein Administratorkonto nicht wie erwartet funktioniert, prüfen Sie stattdessen diese Datei.

Starten Sie nach jeder Änderung an sshd_config den Dienst neu, um sie anzuwenden:

Restart-Service sshd

Überprüfen der SFTP-Verbindung mit WinSCP

Installieren und starten Sie den kostenlosen WinSCP-Client. Wählen Sie im Fenster mit den Verbindungseinstellungen das SFTP-Dateiübertragungsprotokoll, geben Sie den Hostnamen oder die IP-Adresse des Servers in das Feld Host name ein, belassen Sie das Feld Port number auf 22 (sofern Sie keinen anderen Port konfiguriert haben) und geben Sie die Anmeldedaten des Windows-Kontos ein, mit dem Sie sich verbinden.

WinSCP-Anmeldefenster mit ausgewähltem SFTP-Protokoll

Wenn alles korrekt eingerichtet ist, stellt der Client eine Verbindung zum SFTP-Server her und zeigt den Inhalt des Home-Verzeichnisses des Benutzers an (das Standard-Profilverzeichnis). Standardmäßig landet der Benutzer in C:\Users\<username>. Dateien können dann sicher über das SFTP-Protokoll zwischen Server und Client übertragen werden.

WinSCP mit dem SFTP-Server verbunden, zeigt das Home-Verzeichnis

Deinstallieren der OpenSSH-Server-Funktion

1) Starten Sie PowerShell als Administrator.

2) Stoppen Sie den Dienst sshd, bevor Sie die Funktion entfernen, ein Entfernen, während der Dienst noch läuft oder aktiv genutzt wird, kann fehlschlagen oder hängen bleiben:

Stop-Service sshd

3) Entfernen Sie die Funktion:

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

4) (Optional) Entfernen Sie die Firewall-Regel. Dies deckt sowohl die automatisch erstellte als auch die manuell erstellte Regel ab, falls eine davon existiert:

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

5) (Optional) Konfiguration entfernen: Sie können entweder nur die Konfigurationsdatei entfernen oder eine vollständige Bereinigung einschließlich der Host-Schlüssel durchführen.

Um nur sshd_config zu entfernen, ohne die Host-Schlüssel anzutasten:

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

Für eine vollständige Bereinigung einschließlich der Host-Schlüssel entfernen Sie stattdessen den gesamten Konfigurationsordner:

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

Warnung: Beim Entfernen des gesamten Ordners werden auch die Host-Schlüssel des Servers dauerhaft gelöscht. Clients, die sich nach einer Neuinstallation verbinden, behandeln den Server als neuen, unbekannten SSH-Host. Führen Sie dies nur aus, wenn Sie nicht planen, OpenSSH Server später mit derselben Konfiguration neu zu installieren.

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