在使用Centos7的时候,经常在一段时间没有操作之后就自动断掉了,然后重新连接之后就可能失去了当前操作场景。
1.连接不稳定可能原因
1、可能服务器太忙
2、可能是网络连接不够稳定
第二种可能性高,既然能连上那表示服务器端配置没问题。也可以用putty再确认,xshell是否有问题。
2.那么如何才能保证我们即使长时间不操作也会一直保持连接状态
2.1第一种方法:修改/etc/ssh/sshd_config文件
使用命令打开/etc/ssh/sshd_config文件:vim /etc/ssh/sshd_config,修改两个参数ClientAliveInterval和ClientAliveCountMax,这两个参数控制了客户端的存活检测间隔和失败检测的最大次数,如果超过了这个次数就断开客户端的连接,默认情况下这两个是未开启的,将其修改为60和5,值自己定
1.ClientAliveInterval 100
2.ClientAliveCountMax 15
修改完配置之后重启sshd服务:
systemctl restart sshd
2.2 第二种来自于linvirtshell,是我实际遇到的情况
在服务器自动断开的时候,控制台输出了一个关键语句:
哦吼~这句话很关键喔,尤其是auto-logout,在linvirtshell上有这么一句话:
The ssh “timed out waiting for input: auto-logout” messages is generated by ssh upon reaching a auto-logout after an inactivity time specified by the TMOUT environment variable. If this variable is not set your session will not be auto-logged out due to inactivity. If the environment variable is set, your session will be automatically closed/logged out after the amount of seconds specified by the TMOUT variable.
大致意思是Linux维护了一个TMOUT的环境变量,该环境变量的目的是在ssh客户端在指定时间未活动的话,就自动断开该客户端的连接,单位是秒,那我们输出一下该环境变量看看是不是这货在搞怪。
[root@ci034 ~]# echo $TMOUT
180
果然,180秒未活动就自动断开连接,结合之前每次断开的时间间隔,就是这货在作怪了,那么我们直接修改这个参数试试,设置为30分钟不过期
export TMOUT=1800
经验证,确实有效,那么将其设置到/etc/profile文件中(如果文件中已经有配置了,修改时间即可)
如果想关闭自动断开,想永久不断开的话(不推荐),就从环境变量里面移除掉该参数。