在使用Centos7的时候,经常在一段时间没有操作之后就自动断掉了,然后重新连接之后就可能失去了当前操作场景,那么如何才能保证我们即使长时间不操作也会一直保持连接状态,往下看。
-
第一种方法也是网上到处都能搜索到的,修改
/etc/ssh/sshd_config
文件使用命令打开
/etc/ssh/sshd_config
文件:vim /etc/ssh/sshd_config
,修改两个参数ClientAliveInterval
和ClientAliveCountMax
,这两个参数控制了客户端的存活检测间隔和失败检测的最大次数,如果超过了这个次数就断开客户端的连接,默认情况下这两个是未开启的,将其修改为60和5,值自己定1
2ClientAliveInterval 100
ClientAliveCountMax 15修改完配置之后重启sshd服务:
1
systemctl restart sshd
使用该方法修改之后如果还是经常自动断开,那你就看第二种
-
第二种来自于
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客户端在指定时间未活动的话,就自动断开该客户端的连接,单位是秒
,那我们输出一下该环境变量看看是不是这货在搞怪。1
2[root@ci034 ~]# echo $TMOUT
180果然,180秒未活动就自动断开连接,结合之前每次断开的时间间隔,就是这货在作怪了,那么我们直接修改这个参数试试,设置为30分钟不过期
1
export TMOUT=1800
经验证,确实有效,那么将其设置到
/etc/profile
文件中(如果文件中已经有配置了,修改时间即可)如果想关闭自动断开,想永久不断开的话(不推荐),就从环境变量里面移除掉该参数。