让ssh保持连接

client_loop: send disconnect: Broken pipe

本机(客户端)配置,推荐

写入 ~/.ssh/config 文件

Host *
ServerAliveInterval 120
ServerAliveCountMax 30

每个选项的含义如下:

Host:指定的配置仅适用于“Host”关键字后面列出的主机。因为我们使用了通配符 (*),所以它们适用于所有主机。
ServerAliveInterval:设置一个超时间隔(以秒为单位),在此之后,如果没有从服务器收到数据,SSH 将通过加密通道发送消息来请求服务器响应。默认为0,表示这些消息不会发送到服务器。
ServerAliveCountMax:设置 SSH 在没有从服务器返回任何消息的情况下可以发送的服务器活动消息的数量。如果在发送服务器活动消息时达到此阈值,SSH 将与服务器断开连接,从而终止会话。默认值为 3。
也就是说,客户端每隔120秒(2分钟)就会向服务器发送一条keepalive消息,共发送30次。 120 * 30 = 3600 秒,即一小时。这是即使没有活动,我们的 SSH 会话也将保持活动状态的总时间。

服务端(针对所有连接用户)

编辑 /etc/ssh/sshd_config 文件,添加或修改如下配置

TCPKeepAlive yes
ClientAliveInterval 120
ClientAliveCountMax 30

然后重启 sshd 服务即可

systemctl restart sshd
Author: thinkwei

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注