设置ssh连接超时自动断开
1、修改ssh配置防止ssh超时退出
1.1设置服务器向SSH客户端连接会话发送频率和时间
[root@server~]# vi m/etc/ssh/sshd_config,添加如下两项
# TCPKeepAlive yes:是否向客户端发送 TCP keepalive 消息,默认为开启
ClientAliveInterval 60
ClientAliveCountMax 3
#TCPKeepAlive yes:是否向客户端发送 TCP keepalive 消息,默认为开启
# ClientAliveInterval指定了服务器端向客户端请求消息的时间间隔, 默认是0, 不发送。设置60表示每分钟发送一次, 然后客户端响应, 这样就保持长连接了。
# ClientAliveCountMax表示服务器发出请求后客户端没有响应的次数达到一定值, 就自动断开。正常情况下, 客户端不会不响应,使用默认值3即可。这样调整后,即使长时间不操作也不会连接超时中断了。
1.2重新启动SSH服务
[root@server~]# service sshd reload #server 6.X版本
[root@server~]# systemctl restart sshd #server 7.X版本
注:如果不生效,请通过修环境变量TMOUT值设置ssh无录入超时退出,ssh配置不需设置。
2、修改环境变量TMOUT值设置ssh超时退出
$TMOUT是linux系统空闲等待时间变量,为空或0表示不超时,大于0的数字n表示n秒没有录入则超时。
2.1修改TMOUT变量方法
[root@server~]# export TMOUT=600 #临时修改,只对当前shel生效,退出后失效
[root@server~]# vim /etc/profile #修改配置文件永久设置
export TMOUT=600 #设置600秒超时退出,将600修改为0就是设置不超时
readonly TMOUT #设置为readonly防止用户更改
注意:设置了readonly 之后在当前shell下是无法取消的,需要先将/etc/profile中设置readonly行注释起来或直接删除,logout后重新login 。
2.2让配置立即生效
[root@server~]# source /etc/profile
2.3查看设置是否生效
[root@server~]# echo $TMOUT
600
注意:部署了MySQL的服务请不要开启此功能。
3、通过ssh连接参设置
[root@clinet~]# ssh -o ServerAliveInterval=30 root@host