为什么 scp 会停滞?我该如何解决?

为什么 scp 会停滞?我该如何解决?

当我尝试使用 scp 通过网络复制文件(大小为 )时,出现错误。<file> stalled 为什么会发生这种情况?我该如何解决?

答案1

发生这种情况的原因是scp尝试获取尽可能多的带宽,任何延迟(由防火墙等引起)都可能使其停滞。限制带宽(使用 -l 选项)将解决此问题。

例如,您可能希望将带宽限制为 1 MB/s (= 8192 Kbits/s):

 scp -l 8192 <file> <destination>

来源:http://www.aixmind.com/?p=1371 - Wayback Machine

答案2

我已设法通过使用 rsync 解决该问题:

rsync -avz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --progress /tmp/bigfile.txt [email protected]:/tmp/

答案3

您是否有可能位于 Cisco ASA 防火墙后面?如果是这样,请关闭“序列号随机化”,这将大有帮助 - 如果您在服务器上使用带有 Broadcom NIC 的 Cisco ASA,请禁用 TCP 卸载 (ethtool -K $INTERFACE tso off gso off gro off)。

答案4

考虑到 scp 停止时收到的错误消息,我怀疑是加密失败了。“无法确定主机‘myserver (10.10.11.12)’的真实性。ECDSA 密钥指纹为 SHA256:+zkyskXlxVQ0kRorLW26pzprIYbsM4N3hbaDLz1RNpo”考虑到这一点,我运行了“scp -c aes128-ctr /tmp/test.dan/bigfile.src myserver:/tmp/bigfile”。使用备用密码,scp 成功了。默认密码会占用缓冲区空间吗?

可以尝试添加“-c”和备用密码,看看它是否可以解决您的停顿。

相关内容