# 解决ssh连接长时间不操作断开连接的问题(client_loop/ send disconnect/ Broken pipe)
通过ssh
连上服务器后,一段时间不操作,就会自动中断,并报出以下信息:
client_loop: send disconnect: Broken pipe
这带来很大的困扰,过一会就要重新连接,之前的临时环境变量也会丢失。
解决方案:
配置~/.ssh/config
文件,增加以下内容即可:
Host *
# 断开时重试连接的次数
ServerAliveCountMax 5
# 每隔5秒自动发送一个空的请求以保持连接
ServerAliveInterval 5
添加在/etc/ssh/ssh_config
应该也是可以的。
另一个类似问题:解决ssh的"Write failed: Broken pipe"问题 (opens new window)
解决方法
方法一:如果您有多台服务器,不想在每台服务器上设置,只需在客户端的 ~/.ssh/ 文件夹中添加 config 文件,并添加下面的配置:
ServerAliveInterval 60
方法二:如果您有多个人管理服务器,不想在每个客户端进行设置,只需在服务器的 /etc/ssh/sshd_config 中添加如下的配置:
ClientAliveInterval 60
方法三:如果您只想让当前的 ssh 保持连接,可以使用以下的命令:
$ ssh -o ServerAliveInterval=60 user@sshserver