第一步 :修改/etc/ssh/sshd_config文件
[root@centos7 ~]# vi /etc/ssh/sshd_config
找到以下内容并修改它:
ClientAliveInterval 0
ClientAliveCountMax 3
并将注释符号(”#”)去掉,
将ClientAliveInterval对应的0改成60,
- ClientAliveInterval指定了服务器端向客户端请求消息 的时间间隔, 默认是0, 不发送.
- ClientAliveInterval 60表示每分钟发送一次, 然后客户端响应, 这样就保持长连接了.
- lientAliveCountMax, 使用默认值3即可.
SSH Server 每 60秒就会自动发送一个信号给 Client,而等待 Client 回应,如果客户端没有回应,会记录下来直到记录数超过 ClientAliveCountMax(这里设置为3次) 的值时,才会断开连接。
lientAliveCountMax表示服务器发出请求后客户端没有响应的次数达到一定值, 就自动断开.正常情况下, 客户端不会不响应.
重起sshd服务:
CentOS6:
[root@centos6 ~]# service sshd restart
CentOS7:
[root@centos7 ~]# systemctl restart sshd
总结:
Linux ssh会话中断由很多原因造成,有防火墙的原因,有网络连接质量的原因,也有服务器设置的原因
案例1:
我 ubuntu 18.04 自己配置成:每60秒发送一次,超过10次,就自动断掉
最后重新启动:
sun@karat:/etc/ssh$ sudo systemctl restart sshd
sun@karat:/etc/ssh$
案例2:
下面的操作是在阿里云的服务器ubuntu14中的ssh配置中,由于没有发现这两个参数,所以我自己的该配置文件的结尾增加了两个参数的配置,即600秒10分钟10次链接,过后就断开,最后重启ssh。
ubuntu14, 重启ssh
root@iZwz99xibtof6c8lod50rhZ:/etc/ssh# /etc/init.d/ssh restart
ssh stop/waiting
ssh start/running, process 17454
root@iZwz99xibtof6c8lod50rhZ:/etc/ssh#