SSH无操作自动掉线解决方法

解决思路有两种,一种是通过本地端向服务器端发送心跳包,另一种是服务器端向本地端发送心跳包。

第一种,在本地端设置

在 windows 下以 Secure CRT 为例

在 Session Opinion 对话框中找到 Terminal 项,又有一个 Anti-idle 的 box,里面有两种方案,一种是每隔多少秒发送一个字符串,另一个是发送 NO-OP 指令(也就是空指令)。

捕获

不过这种方法我没试过 hhhh。

在 Linux 下

打开 ssh 客户端配置文件

1
sudo vim /etc/ssh/ssh_config

找到如下代码消去注释符号,并且调整参数

1
2
ServerAliveInterval 20
ServerAliveCountMax 999

含义是:每隔 20 秒向服务器发送一个心跳包,如果 999 次都失败,则断开连接 这种方法我也没试过 hhhh。

第二种,在服务器端设置

打开 ssh 服务端配置文件

1
sudo vim /etc/ssh/sshd_config

找到如下代码消去注释符号,并且调整参数

1
2
ClientAliveInterval 120
ClientAliveCountMax 10

含义是:每隔 120 秒向客户端发一个心跳包,如果 10 次都失败,则断开连接 注意:在配置完以后不要直接关闭这个 SSH 连接,而是需要再打开一个 SSH 进行验证,以免配置错误导致 SSH 连接不到,那就麻烦了 我现在使用的就是这种方法,测试了几个小时,SSH 依旧保持连接。

参考:http://www.coder4.com/archives/3751