Ssh
scp 和 sftp 因“client_loop: send disconnect: Broken pipe”而失敗(MacOS 11.3 問題?)
截至 2 天前,
scp
對於大於 ~200 KB 的文件,我嘗試從筆記型電腦到伺服器的文件始終失敗,並出現錯誤*“client_loop: send disconnect: Broken pipe”這恰逢我的筆記型電腦升級到 MacOS 11.3(從 11不管之前是什麼*)。$ dd if=/dev/urandom of=test.dat count=400 2> /dev/null && ls -l test.dat && scp test.dat $DST -rw-r--r-- 1 xxxx staff 204800 Apr 28 11:27 test.dat test.dat 0% 0 0.0KB/s --:-- ETAclient_loop: send disconnect: Broken pipe lost connection
這絕對是新的,因為我幾乎每天都在使用 scp 並且在更新之前從未遇到過問題。這種行為在我用作目標的 2 個不同的伺服器架構(NAS 和 Raspberry Pi - 以排除偶然的伺服器配置錯誤)以及使用我的 Linux 桌面作為客戶端(也沒有問題)上也可見。同樣奇怪的是,無論是普通 SSH 還是 Homebrew SSH 安裝都出現了問題,這暗示了 SSH 客戶端配置問題或網路堆棧中的錯誤。我很好奇是否有其他人在觀察同樣的問題。
sftp
表現出同樣的問題。在伺服器端,這是我在日誌中得到的:
May 1 23:27:27 myhost sshd[21774]: Bad packet length 116136902. May 1 23:27:27 myhost sshd[21774]: ssh_dispatch_run_fatal: Connection from user pi XXX.XXX.XXX.XXX port 59948: Connection corrupted
PS一
$$ very imperfect $$解決此問題的方法是使用足夠低的頻寬限制(
-l
選項),但這並不是很好,因為它會使傳輸速度非常緩慢。
我發現在 Norton Internet Security 上禁用“防火牆 -> 連接阻止”解決了我的問題。
不過,在問題得到解決之前,我可能會使用
-l
scp 選項。
嘗試編輯您的
/etc/ssh/sshd_config
or~/.ssh/config
文件並添加/更新;ClientAliveInterval 300