服务端配置
修改服务器配置文件/etc/ssh/sshd_config,在配置文件里加入下面三行:
TCPKeepAlive yes
ClientAliveInterval 60
ClientAliveCountMax 20
以上设置,是让sshd服务每间隔60秒向客户端发送keepalive报文以保持连接,直到连续20次没有收到keepalive回应,才断开与客户端的连接。其实为这几行配置在原文件里都有,只是前面有#号没有生效,可以把这几行前面的注释符号#去掉,然后改一下数字就好了。修改完成以后,需要重新启用ssh服务才能生效。
客户端配置
根据你使用的不同客户端,可以做相应的设置:
securecrt的设置方法:会话选项 –> 终端 –> 反空闲–>选中发送协议 NO-OP(p) 每 60 秒
putty的设置方法:putty -> Connection -> Seconds between keepalives ( 0 to turn off ), 默认为0, 改为60
MobaXterm的设置方法:setting>SSH>sessions setting>勾选ssh Keepalive
如果你直接使用命令行的SSH客户端直接登录远程服务器,还可以修改SSH客户端的配置文件,一般是在全局配置文件/etc/ssh/ssh_config或者用户级配置文件~/.ssh/config里,加入以下代码:
TCPKeepAlive yes
ServerAliveInterval 60
ServerAliveCountMax 20