念念不忘
必会回响

Linux保持长时间会话不断开

使用SSH方式登录Linux操作系统的云服务器时,过一段时间就会自动断开连接。本篇操作介绍如何保持SSH会话持续连接不断开。

配置sshd

可通过修改sshd配置文件来解决自动断开的问题,编辑/etc/ssh/sshd_config文件设置心跳,保持连接。

vim /etc/ssh/sshd_config
# 新增如下两个配置
ClientAliveInterval 600      
ClientAliveCountMax 10
PowerShell

ClientAliveInterval 600 表示每600秒发送一次请求, 从而保持连接。

ClientAliveCountMax 10 表示服务器发出请求后客户端没有响应的次数达到10次,就自动断开连接。

无响应的SSH客户端将在大约600×10=6000秒后断开连接。

ClientAliveInterval设置超时间隔(以秒为单位),在此间隔之后,如果尚未从客户端接收到任何数据,则sshd将通过加密的通道发送消息以请求客户端的响应。默认值为0,表示这些消息将不会发送到客户端。此选项仅适用于协议版本2。
ClientAliveCountMax设置客户端活动消息的数量,该消息可以在sshd接收不到来自客户端的任何消息的情况下发送。如果在发送客户端活动消息时达到此阈值,则sshd将断开客户端连接,从而终止会话。
客户端活动消息的使用与TCPKeepAlive有很大不同。客户端活动消息是通过加密通道发送的,因此不会被欺骗。由TCPKeepAlive启用的TCP keepalive选项是可欺骗的。

修改完后重启sshd

# CentOS6
service sshd restart

# CentOS7
systemctl restart sshd

# 注意,执行这个操作会断开ssh连接。
PowerShell

设置Linux系统的空闲等待时间TMOUT

如果第一个方法不能解决断开连接的问题,那么大概率是因为在环境变量种配置了TMOUT。为了增强Linux系统的安全性,我们需要在用户输入空闲一段时间后自动断开,这个操作可以由设置TMOUT值来实现。将以下字段加入到/etc/profile 中即可(对所有用户生效)。

vim /etc/profile

export TMOUT=6000                            # 设置6000秒内用户无操作就自动断开终端

readonly TMOUT                                # 将值设置为readonly 防止用户更改
PowerShell
注意:设置了readonly 之后在当前shell下是无法取消的,需要先将/etc/profile 中设置readonly行注释起来或直接删除,logout 后重新login 。

有的时候设置了超时时间很短的话,当需要进行很多操作的时候,不希望经常超时断开,可以每次登录时候先在命令行下面执行下的命令,重启失效。执行以下命令,防止超时退出。

$TMOUT=0
PowerShell

赞(5) 打赏
未经允许不得转载:堆上小栈 » Linux保持长时间会话不断开

评论 抢沙发

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册