a984540a9463d771398aba8d70ec202e.png

引言

个人在工作中经常用xshell远程登录服务器进行各种操作,但因为生产服务器环境变量和ssh配置不尽相同,也造成了工作上的一些不便,比如正在进行中的工作中断,需要重新连接……

解决ssh连接Linux超时自动断开的第一种方法:

1.修改/etc/profile(对所有用户有效)

增加export TMOUT=300   //代表300秒

然后用source /etc/profile 执行生效

说明:需要注意的是,个人在在某台服务器上用普通账号(非root)远程连接,在用su 切换到root账户,然后编辑vi /etc/profile文件,执行export TMOUT=60和source /etc/profile 后发现,root账号60秒后自动断开,而普通账号一直保持连接,于是个人尝试logout,然后再次用普通账户登录后,发现60秒实现了普通账号无操作断开的情况。

2.sshd 服务配置grep ClientAlive /etc/ssh/sshd_config

#ClientAliveInterval 0#ClientAliveCountMax 3以上是默认配置

#ClientAliveInterval指定了服务器端向客户端请求消息的时间间隔, 默认是0, 不发送。设置60表示每分钟发送一次, 然后客户端响应, 这样就保持长连接了。

#ClientAliveCountMax表示服务器发出请求后客户端没有响应的次数达到一定值, 就自动断开。正常情况下, 客户端不会不响应,使用默认值3即可。

接下来备份原配置文件cp sshd_config sshd_config.bak# 启用客户端活动检查,每300秒检查一次,3次不活动断开连接

sed -i "s/#ClientAliveInterval 0/ClientAliveInterval 300/g" sshd_config

sed -i "s/#ClientAliveCountMax 3/ClientAliveCountMax 3/g" sshd_config# 确认修改grep ClientAlive sshd_config# 比较配置文件差异diff sshd_config sshd_config.bak# 重新加载ssd配置,让配置生效service sshd reload

最后,通过以上两个地方的任意一个修改,可以更改我们SSH登录自动后因超时间太短而自动断开的问题了。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐