解决Centos使用ssh连接自动断开

在使用Centos7的时候,经常在一段时间没有操作之后就自动断掉了,然后重新连接之后就可能失去了当前操作场景,那么如何才能保证我们即使长时间不操作也会一直保持连接状态,往下看。

第一种方法也是网上到处都能搜索到的,修改/etc/ssh/sshd_config文件

使用命令打开/etc/ssh/sshd_config文件:vim /etc/ssh/sshd_config,修改两个参数ClientAliveInterval和ClientAliveCountMax,这两个参数控制了客户端的存活检测间隔和失败检测的最大次数,如果超过了这个次数就断开客户端的连接,默认情况下这两个是未开启的,将其修改为60和5,值自己定

ClientAliveInterval 100
ClientAliveCountMax 15
1
2
修改完配置之后重启sshd服务:

systemctl restart sshd
1
使用该方法修改之后如果还是经常自动断开,那你就看第二种

第二种来自于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
1
2
果然,180秒未活动就自动断开连接,结合之前每次断开的时间间隔,就是这货在作怪了,那么我们直接修改这个参数试试,设置为30分钟不过期

export TMOUT=1800
1
经验证,确实有效,那么将其设置到/etc/profile文件中(如果文件中已经有配置了,修改时间即可)

如果想关闭自动断开,想永久不断开的话(不推荐),就从环境变量里面移除掉该参数。
————————————————
版权声明:本文为CSDN博主「串一串cc」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/luxiaoruo/article/details/111192061

posted @ 2023-02-07 16:01  GaoYanbing  阅读(1469)  评论(0编辑  收藏  举报