ssh的空闲超时断开会话方法及反空闲(保持连接)方法
两种方式:
1.设置TMOUT,在用户家目录下设置只针对本用户,在/etc/profile里设置针对全部
这个是针对所有tty的,所以本地和ssh超时都会退出
注意:大多数的shell客户端工具,如putty,windterm,mobaxterm等里面的保持会话功能,只发送空包,是无法针对TMOUT起作用的
tmout命令只对交互式shell有效,对于非交互式shell(如通过脚本执行的shell),tmout命令不会起作用。
这种设置反空闲,如果无法改变服务器配置,就需要你的客户端工具可以定时发送非空数据包;
如果你只是执行一条命令,则可以使用非交互模式
2.修改ssh配置文件,分为客户端和服务器端
ssh客户端:
/etc/ssh/ssh_config 配置文件中
# Client每隔 60 秒发送一次请求给 Server,然后 Server响应,从而保持连接
ServerAliveInterval 60
# Client发出请求后,服务器端没有响应得次数达到3,就自动断开连接,正常情况下,Server 不会不响应
ServerAliveCountMax 3
ssh服务器端:
配置文件:/etc/ssh/sshd_config
# Server 每隔 60 秒发送一次请求给 Client,然后 Client响应,从而保持连接
ClientAliveInterval 60
# Server发出请求后,客户端没有响应得次数达到 10,就自动断开连接,正常情况下,Client不会不响应
ClientAliveCountMax 10
实测这种方法对登录着的客户端没有什么作用(即空闲很长时间都不会自动退出登录,最后过一天或者几个小时断开,应该只是网络中的防火墙的设置导致),只是对网络问题导致断联的会话有作用,而且ClientAliveCountMax 需要大于0
具体原因没有查到,有可能与内核参数相关,相关文章:
如何设置Linux系统自动断开连接的时间 (linux设置断开时间)-VAiCDN资讯_高防CDN_免备案CDN_服务器 - VAiCDN
SSH 自动断开连接的问题处理及原因说明 - zhb127's blog
CentOS Linux SSH 安全基线加固 | Infvie Envoy
参考文章:
等保测评:Centos超时退出详解 - FreeBuf网络安全行业门户