Ubuntu からのファイルは正常に送信されましたが、Windows からは「rsync プロトコル データ ストリームのエラー (コード 12)」というエラーが発生しました

Ubuntu からのファイルは正常に送信されましたが、Windows からは「rsync プロトコル データ ストリームのエラー (コード 12)」というエラーが発生しました

すぐに、Ubuntu PCからRsyncを使用してVPSにファイルを送信すると、すべてうまくいきますが、Windowsから同じことを行うと、エラーが発生します。

rsync: 接続が予期せず閉じられました (これまでに 0 バイト受信)

[受信者] rsync エラー: io.c(235) の rsync プロトコル データ ストリーム (コード 12) でエラーが発生しました [受信者 = 3.1.3]

Linux とは異なり、Windows では Rsync はデフォルトでインストールされていませんが、私は Windows PC に Rsync をインストールしました。

ここに画像の説明を入力してください

環境データ

  • ローカル PC#1: Windows 10
  • ローカル PC#2: Ubuntu 20.04.5
  • VPS: Ubuntu 20.04

準備

私はクリアな Ubuntu で VPS を初期化しました。方程式からいくつかの変数を削除するために、セキュリティ上の理由から実際の (私の場合のように実験的なものではない) VPS では実行すべきではないいくつかの操作を実行しました。

  • ルートアカウントを使用してデータを送信します
  • SLLは使用しません

また、私はvar/www/example.com宛先ディレクトリが作成されていないためにデータを同期できないというエラーを回避するには、VPS でディレクトリを作成します。

目標

ここに画像の説明を入力してください

コンテンツを送信する06-プロダクションビルドディレクトリを VPS へ。

実験の流れ

Windowsターミナルで、次のように入力します。

rsync -azve ssh --progress 06-ProductionBuild [email protected]:/var/www/example.com

パスワードが要求されました。パスワードを入力すると次のようになります:

rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(235) [Receiver=3.1.3]

ここに画像の説明を入力してください

間違ったパスワードを入力しただけの場合、エラーが発生しますPermission denied, please try again

Ubuntu PC から同じコマンドを実行します:

ここに画像の説明を入力してください

すべてが大丈夫でした。

ヒントを教えてください。


WSLから試してみましたが、問題ありませんでした。Windows からの Rsync

ここに画像の説明を入力してください

答え1

sshどうやら、だけを指定すると、「システム」プログラム (Microsoft の OpenSSH のネイティブ ビルド)が使用されるためと思われます。(より正確には、 (cw)rsync インストール ディレクトリの PATH 優先順位が、関係する他のパスよりも低いため-e sshと思われます)。bin

私のテストでは、最も簡単な回避策は-e /bin/ssh代わりに指定することです。これにより、付属のrsync(cygwin) が使用されますssh。(cygwin の「マジック」により、chocolatey かどうかに関係なく、パスのルートが自動的に解決されるはずです。)

(原因を発見した)功績はコメントにあるここただし、そこで提案されているアプローチは不必要に不器用なようです。(まあ、sshMicrosoft のビルドを使用する理由がない限りは)

編集: 実際、リンクされた正しい説明は、私には正確には当てはまらないようです。私のテストでは、ssh が使用する「システム」は確かにknown_hosts別の場所にありますが、初めて接続しようとしたときに、サーバーをリストに追加するように求められ、サーバーがknown_hosts正常に作成されました。その後の試行でも尋ねられなかったので、どうやら独自のサーバーを見つけて読み戻すことができるようです。したがって、彼の提案がどのように役立ったのかはわかりませんし、オプション/パスを指定しても私には機能しません。

関連情報