Aktualisieren:

Aktualisieren:

Ich habe diese Anleitung verwendet, um OpenSSH von zu installierenWinSCPsWebseite.

Ich habe das msiInstallationsprogramm verwendet, das auf der GitHub-Seite aufgeführt isthttps://github.com/PowerShell/Win32-OpenSSH/releases.

Der Server scheint zu laufen, aber nach dem Anmeldeversuch erhalte ich:

---------------------------
Error
---------------------------
Connection has been unexpectedly closed. Server sent command exit status 1.
---------------------------
Cannot initialize SFTP protocol. Is the host running an SFTP server?
---------------------------
OK   Reconnect   Help   
---------------------------

Auf der Server-Maschine scheint ein SSHD zu laufen, der auf Port 22 lauscht (von TCPview kopiert):

Verfahren PID Protokoll Zustand Lokale Adresse Lokaler Port Remote-Adresse Remote-Port Zeit schaffen Modulname
Herunterladen 5844 TCP Hören 0.0.0.0 22 0.0.0.0 0 19.08.2022 18:49:33 Uhr sshd
Herunterladen 5844 TCPv6 Hören :: 22 :: 0 19.08.2022 18:49:33 Uhr sshd

Ich habe die Standardeinstellung nicht geändertsshd_config

Aktualisieren:

Die Verwendung von Putty und demselben Benutzernamen und Passwort funktioniert und ich kann Verzeichnisse durchsuchen.

Hier ist Putty vs. WinScp:

putty_vs_winscp

(Wobei Rot und Orange jeweils Benutzername und Computername darstellen)

Es sind FW-Regeln definiert:

Firewall-Regeln

Antwort1

Das Problem bestand darin, dass sftp-server.exenicht in enthalten war PATH. Das Hinzufügen des Installationspfads C:\Program Files\OpenSSHund ein Neustart des Dienstes Restart-Service sshdlösten das Problem.

Ich diagnostizierte durch die Einstellung

SyslogFacility LOCAL0
LogLevel DEBUG3

InC:\ProgramData\ssh\sshd_config

Und bemerkte, dass es sich beschwerte, es nicht zu finden

subsystem: cannot stat sftp-server.exe: No such file or directory

Antwort2

Um das Problem zu beheben, öffnen Sie die SSH-Serverkonfiguration unter Windows (normalerweise unter C:\ProgramData\ssh\sshd_config).


Ersetzen Sie es zuerst sftp-server.exedurch die Zeile <absolute-path-to>/sftp-server.exe.

Es scheint, dass diese Einstellung PATHauf meiner Seite nutzlos ist.


Zweitens: Kommentieren oder entfernen Sie Zeilen, die mit ForceCommand„if exists“ beginnen.

Es hilft, die meisten unbekannten Fehler von SFTP-Clients zu beheben. Es gibt jedoch einen Nebeneffekt, dass SSH-Clients CMD als Standard-Shell verwenden.

Um PowerShell als Standard-Shell zu verwenden, bearbeiten Sie die SSH-Clientkonfiguration (normalerweise unter ~/.ssh/config):

Host <host>
  ...
  RemoteCommand powershell

verwandte Informationen