Ubuntu 中的檔案已成功提交,但 Windows 中出現錯誤“rsync 協定資料流錯誤(代碼 12)”

Ubuntu 中的檔案已成功提交,但 Windows 中出現錯誤“rsync 協定資料流錯誤(代碼 12)”

如果很快,當我透過 Rsync 將檔案從 Ubuntu PC 提交到 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
  • 虛擬專用伺服器:Ubuntu 20.04

準備工作

我已經用clear Ubuntu初始化了VPS。為了消除方程式中的一些變量,出於安全考慮,我做了一些不應該在真實(不是像我這樣的實驗)VPS 中完成的事情。

  • 我將使用 root 帳戶提交數據
  • 我不會使用 SLL

另外,我還創建了/var/www/example.com避免因目標目錄尚未建立而無法同步資料的錯誤。

目標

在此輸入影像描述

提交內容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當您僅指定-e ssh. (更準確地說,這可能是因為 (cw)rsync 安裝目錄的 PATH 優先順序bin低於其他相關路徑)。

在我的測試中,最簡單的解決方法是指定-e /bin/ssh,這將使用它附帶的rsync(cygwin) 。 ssh(cygwin「魔法」應該會自動為您解析路徑的根,無論是否是巧克力。)

(發現原因的)歸功於評論這裡,儘管那裡提供的方法似乎不必要地笨拙。 (好吧,除非你有理由使用sshMicrosoft 的版本。)

編輯:實際上,鏈接正確中給出的解釋對我來說似乎並不完全正確。在我的測試中,「系統」ssh 確實會known_hosts在不同的位置使用,但當我第一次嘗試連接它並known_hosts成功創建自己的伺服器時,它也會提示我將伺服器新增至清單。在後來的嘗試中它也沒有問我,所以顯然它可以找到自己的來讀回。因此,我不知道他的建議如何幫助他,並且指定選項/路徑無論如何對我不起作用。

相關內容