So richten Sie einen SFTP-Server (SSH FTP) unter Windows ein

Die Einrichtung eines OpenSSH-SFTP-Servers unter Windows kann etwas knifflig sein, besonders beim ersten Mal. Es können Probleme auftreten, z. B.dass der SSH-Dienst nicht automatisch startet, Firewall-Regeln nicht konfiguriert sind oder die Konfigurationsdateien nicht korrekt sind. Die gute Nachricht: Wenn Sie die Schritte befolgen und die Einstellungen sorgfältig prüfen, erhalten Sie eine sichere Übertragungslösung, die deutlich besser ist als umständliche Drittanbieter-Tools. Diese Lösung ist recht flexibel und funktioniert auf allen Windows-Versionen von Windows 10 (ab Build 1803) bis Windows Server 2022, wobei es je nach Version einige Unterschiede geben kann. Am Ende können Sie Dateien sicher per SSH übertragen, ohne Ihre Passwörter preiszugeben oder auf unzuverlässige FTP-Optionen angewiesen zu sein. Und wenn es Ihnen wie den meisten geht, war mein Hauptgrund einfach der Wunsch nach mehr Sicherheit und einfacherer Verwaltung. Ein kleiner Hinweis: Je nach Windows-Version können einige Befehle oder Pfade leicht abweichen, das Grundprinzip bleibt jedoch gleich.

Wie man OpenSSH unter Windows für SFTP zum Laufen bringt

So installieren Sie OpenSSH unter Windows

Hier wird es bei Windows etwas kurios – manchmal ist OpenSSH bereits vorinstalliert, manchmal muss es manuell installiert werden. Bei neueren Versionen von Windows 10 (ab 1803), Windows 11 oder Windows Server 2019/2022 ist OpenSSH eine optionale Funktion. Die Installation erfolgt über PowerShell, denn Windows macht es einem natürlich unnötig schwer.

  • Öffnen Sie PowerShell als Administrator und führen Sie folgenden Befehl aus:Add-WindowsCapability -Online -Name OpenSSH. Server*
  • Oder, falls Sie die Kommandozeile bevorzugen, verwenden Sie:dism /Online /Add-Capability /CapabilityName:OpenSSH. Server~~~~0.0.1.0
  • Gehen Sie in der grafischen Benutzeroberfläche zu Einstellungen > Apps > Optionale Funktionen > Funktion hinzufügen und suchen und installieren Sie dann OpenSSH Server.
  • Prüfen Sie, ob es installiert ist mit:Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

Nach der Installation befinden sich die ausführbaren Dateien üblicherweise im Verzeichnis `/usr/local/bin` c:\windows\system32\OpenSSH\. Die Hauptkonfigurationsdatei ist `sshd_config` im C:\ProgramData\sshVerzeichnis `/usr/local/bin`.Falls dieser Ordner nicht vorhanden ist, müssen Sie zuerst den SSHD-Dienst starten; Windows erstellt den Ordner automatisch.

Hinweis: Bei einigen älteren Windows-Versionen, wie z. B.1809 oder Windows Server 2016, müssen Sie Win32-OpenSSH von GitHub herunterladen. Entpacken Sie die Dateien in ein Verzeichnis wie z. B.`/var/ www/win32-openssh` C:\OpenSSH-Winund folgen Sie dann den Installationsanweisungen – einschließlich des Hinzufügens des Ordners zur Umgebungsvariablen `Path`.\install-sshd.ps1. Führen Sie anschließend in diesem Verzeichnis den Befehl in PowerShell aus (verwenden Sie `/var/www/win32-openssh`, powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1falls Skripte blockiert sind).Aktivieren Sie nach der Installation den Dienst.

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

Konfiguration des SSH-Dienstes und der Firewall

Wichtig ist nun, dass es automatisch startet und Port 22 öffnet. Unter modernen Windows-Versionen können Sie Folgendes tun:

 New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName SSH 

Falls dieser Befehl nicht funktioniert, wahrscheinlich bei älteren Versionen oder in bestimmten Unternehmenskonfigurationen, versuchen Sie Folgendes:

 netsh advfirewall firewall add rule name='SSH Port' dir=in action=allow protocol=TCP localport=22 

Dadurch wird Port 22 in der Windows Defender Firewall geöffnet, sodass Ihr SSH-Server nicht blockiert wird. Beachten Sie, dass Sie Port 22 auch hinter einer restriktiveren Unternehmensfirewall oder einem Router öffnen müssen.

sshd_config für SFTP anpassen

Öffnen Sie die Konfigurationsdatei in einem Texteditor wie Notepad:

C:\ProgramData\ssh\sshd_config 

Suchen Sie die Zeile für das Subsystem sftp. Sie sollte folgendermaßen aussehen:

Subsystem sftp sftp-server.exe 

Falls es auskommentiert ist oder auf eine falsche Stelle verweist, korrigieren Sie es. Sie können hier auch andere Optionen anpassen:

  • Legen Sie unter AllowGroups fest, wer sich verbinden darf (verwenden Sie Ihre Domäne oder lokale Gruppen).Beispiel:AllowGroups domain\sftpusers
  • Aktivieren Sie die Passwortauthentifizierung mit:AuthenticationMethods password
  • Konfigurieren Sie für jeden Benutzer das Chroot-Verzeichnis (in dem er nach der Verbindung landet) mit ChrootDirectory und ForceCommand internal-sftp. Zum Beispiel:
Match User username ChrootDirectory C:\SFTP\username ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no 

Bei manchen Konfigurationen ist es hilfreich, den SSHD-Dienst nach Änderungen neu zu starten:

Restart-Service sshd 

Verbindung zu Ihrem SFTP-Server herstellen

Nachdem alles eingerichtet ist, können Sie die Verbindung herstellen. Nutzen Sie kostenlose Clients wie WinSCP oder PowerShell mit Modulen wie Posh-SSH. Stellen Sie in WinSCP das Protokoll auf SFTP ein und geben Sie die IP-Adresse oder den Hostnamen Ihres Servers, Ihren Benutzernamen und Ihr Passwort oder Ihren SSH-Schlüssel ein. Beim Verbindungsaufbau erhalten Sie möglicherweise eine Warnung, dass der Hostschlüssel nicht im Cache vorhanden ist. Akzeptieren Sie diese, wenn Sie dem Server vertrauen (oder überprüfen Sie den Fingerabdruck manuell).

Hier ist ein kurzer PowerShell-Codeausschnitt zum Testen der Verbindung mit dem Posh-SSH- Modul:

 Install-Module -Name Posh-SSH $cred = Get-Credential $session = New-SFTPSession -ComputerName 192.168.1.100 -Credential $cred Get-SFTPChildItem -SFTPSession $session -Path / #...do stuff...Remove-SFTPSession -SFTPSession $session 

Wenn Sie die integrierte Befehlszeile bevorzugen, öffnen Sie PowerShell und führen Sie folgenden Befehl aus:

sftp username@server 

Oder geben Sie einen privaten SSH-Schlüssel an, -i path\to\privatekeywenn Sie die schlüsselbasierte Authentifizierung verwenden möchten. Sobald man sich daran gewöhnt hat, ist es ganz einfach.

Einrichtung der Public-Key-Authentifizierung

Dieser Schritt ist etwas umständlich, lohnt sich aber absolut, wenn Sie sich passwortlos anmelden möchten. Sie erstellen SSH-Schlüssel lokal mit dem Befehl `ssh-keys` ssh-keygen -t ed25519. Dabei werden die Dateien ` id_ed25519.pub` (privat) und `id_ed25519.pub` (öffentlich) generiert.

Kopieren Sie die Datei id_ed25519.pub auf den SFTP-Server und legen Sie sie im Benutzerverzeichnis ab C:\Users\username\.ssh\authorized_keys. Achten Sie auf korrekte Dateiberechtigungen, da Windows bei Zugriffsproblemen durch andere Benutzer schnell reagiert.

Konfigurieren Sie anschließend Ihren SSH-Client (z. B.WinSCP oder PowerShell) für die Verwendung dieses privaten Schlüssels. In WinSCP: Gehen Sie zu Erweitert > SSH > Authentifizierung und wählen Sie die private Schlüsseldatei aus. In PowerShell können Sie die Schlüsseldatei wie im vorherigen Beispiel angeben.

Und ja, sobald alles richtig eingerichtet ist, können Sie sich verbinden, ohne jedes Mal Ihr Passwort eingeben zu müssen. Ich weiß nicht genau, warum es funktioniert, aber… es funktioniert einfach.

Zusammenfassung

Der gesamte Vorgang mag für Anfänger etwas kompliziert erscheinen, aber sobald alles konfiguriert ist, kann Ihr Windows-Rechner als sicherer und zuverlässiger SFTP-Server fungieren. Achten Sie auf die Konfigurationsdetails – die richtigen Berechtigungen setzen, Ports öffnen und die Datei sshd_config korrekt bearbeiten – das ist entscheidend für den Erfolg der Einrichtung. Testen Sie die Verbindung zunächst mit WinSCP; wenn das funktioniert, ist PowerShell ein Kinderspiel. Die Einrichtung der Schlüsselauthentifizierung erfordert etwas mehr Aufwand, lohnt sich aber für den Komfort und die erhöhte Sicherheit.

Zusammenfassung

  • Installieren Sie OpenSSH je nach Windows-Version über PowerShell oder die grafische Benutzeroberfläche.
  • Aktivieren und starten Sie den sshd-Dienst und stellen Sie ihn auf automatischen Start ein.
  • Konfigurieren Sie die Firewall-Regeln so, dass Port 22 zugelassen wird.
  • Passen Sie sshd_config an Ihre Sicherheits- und Verzeichnispräferenzen an.
  • Testen Sie mit WinSCP- oder PowerShell-Modulen.
  • Richten Sie bei Bedarf SSH-Schlüssel für die passwortlose Anmeldung ein.

Zusammenfassung

Hoffentlich vermittelt diese Anleitung einen guten Eindruck davon, wie man Windows in einen funktionierenden SFTP-Server verwandelt. Sie ist nicht perfekt – Windows kann bei Berechtigungen und Konfigurationspfaden manchmal etwas eigenwillig sein –, aber dieser Ansatz ist deutlich besser als einige der älteren, umständlicheren Methoden. Ist alles eingerichtet, wird die sichere Dateiübertragung per SSH wesentlich einfacher und fühlt sich viel sicherer an. Ich hoffe, diese Anleitung hilft dem einen oder anderen, die anfängliche Hürde zu überwinden – die Einrichtung von SSH unter Windows ist nämlich etwas knifflig und kann einen schon mal ins Straucheln bringen.