SSH 问题“写入失败:管道损坏”

use*_*992 3 ssh ubuntu

可能重复:
SSH 会话中的 Broken pipe 消息是什么意思?

我在服务器上运行一个程序SSH!程序正常运行,一段时间后我收到一条消息Write failed: Broken pipe,程序停止。

请问这是什么意思?什么是解决方案?

我读到:SSH 会话中的 Broken pipe 消息是什么意思?

我可以克服这个问题来更新我的服务器(并重新启动你的 sshd)

echo "ClientAliveInterval 60" | sudo tee -a /etc/ssh/sshd_config
Run Code Online (Sandbox Code Playgroud)

或客户端:

echo "ServerAliveInterval 60" >> ~/.ssh/config
Run Code Online (Sandbox Code Playgroud)

但是如何让它无限呢?不仅60秒!

谢谢

Eig*_*ony 7

尝试man sshd_config和man ssh_config。

客户端存活时间间隔

设置一个以秒为单位的超时间隔,如果没有从客户端接收到数据,sshd(8) 将通过加密通道发送消息以请求客户端的响应。默认为 0,表示这些消息不会发送到客户端。此选项仅适用于协议版本 2。

和

服务器活动间隔

以秒为单位设置超时间隔,如果没有从服务器接收到数据,ssh(1) 将通过加密通道发送消息以请求服务器的响应。默认值为 0,表示这些消息不会发送到服务器,如果设置了 BatchMode 选项,则为 300。此选项仅适用于协议版本 2。

我会避免使用,

echo "ClientAliveInterval 60" | sudo tee -a /etc/ssh/sshd_config
Run Code Online (Sandbox Code Playgroud)

亲身。这似乎是更新 sshd_config 的一种笨拙且冒险的方式。我sudo vi会这样做,看看 ClientAliveInterval 的现有设置是什么(如果存在)。

最后,我相信您误读了这些设置的作用。在那之后,他们不会断开连接,而是在该时间之后发送保持活动消息,以鼓励连接的两端以及中间的任何防火墙相信连接仍然处于活动状态并且应该保持打开状态。