アップデート:

アップデート:

このガイドを使用してOpenSSHをインストールしましたWinSCPのWebサイト。

msigithubページに記載されているインストーラーを使用しましたhttps://github.com/PowerShell/Win32-OpenSSH/リリース

サーバーは実行されているようですが、ログインしようとすると次のメッセージが表示されます:

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

サーバー マシンでは、sshd が実行され、ポート 22 でリッスンしているようです (TCPview からコピー)。

プロセス ピッド プロトコル ローカルアドレス ローカルポート リモートアドレス リモートポート 時間を作る モジュール名
sshd.exe 5844 TCP 聞く 0.0.0.0 22 0.0.0.0 0 2022年8月19日午後6時49分33秒 sshd
sshd.exe 5844 TCPv6 聞く :: 22 :: 0 2022年8月19日午後6時49分33秒 sshd

デフォルトは変更していませんsshd_config

アップデート:

putty と同じユーザー名とパスワードを使用すると、ディレクトリを参照できます。

Putty と WinScp の比較は次のとおりです。

パテ_vs_winscp

(赤とオレンジはそれぞれユーザー名とマシン名です)

FW ルールは次のように定義されます:

ファイアウォールルール

答え1

問題は、sftp-server.exeが になかったことですPATH。インストール パスを追加しC:\Program Files\OpenSSH、 でサービスを再起動すると、Restart-Service sshd問題は解決しました。

設定で診断しました

SyslogFacility LOCAL0
LogLevel DEBUG3

C:\ProgramData\ssh\sshd_config

そしてそれが見つからないと文句を言っていることに気づいた

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

答え2

この問題を解決するには、Windows で SSH サーバー構成 (通常は にありますC:\ProgramData\ssh\sshd_config) を開きます。


まず、sftp-server.exe行 を に置き換えます<absolute-path-to>/sftp-server.exe

私の側では設定PATHが役に立たないようです。


次に、if exists で始まる行をコメント化または削除しますForceCommand

これは、SFTP クライアントからの不明なエラーのほとんどを解決するのに役立ちます。ただし、SSH クライアントが CMD をデフォルトのシェルとして使用するという副作用があります。

PowerShell をデフォルトのシェルとして使用するには、SSH クライアント設定 (通常は にあります~/.ssh/config) を編集します。

Host <host>
  ...
  RemoteCommand powershell

関連情報