在巡检Linux系统时,检查日志时候发现如下报错:
error: Received disconnect from x.x.x.x port 47528:2: User session has timed out idling after 600000 ms.
先决条件
-
- Red Hat Enterprise Linux release 8.10 (Ootpa)
- 齐治堡垒机
诊断步骤
在使用SSH(Secure Shell)进行远程连接时,常常会遇到会话因长时间空闲而自动断开的情况。首先我们先和使用者者联系,确认是否存在空间超时的情况。
1.检查网络情况
使用ping命令测试客户端与服务器之间网络的连通性,例如:
ping x.x.x.x
2.检查服务器资源使用情况
在服务器端使用top、htop等命令查看系统西苑,判断是否因资源不足导致ssh异常。
3.检查防火墙
在服务端查看防火墙状态,以 firewalld 为例:
[root@shizhanxia.com ~]# firewall-cmd --list-all
检查防火墙是否启动,如果启动状态则可以看到规则。
解决方案
经过如上检查,没有发现其他原因导致SSH连接异常的情况。那么需要调整ssh配置解决该问题。
客户端方面
(1)修改SSH客户端配置
通过修改客户端的SSH配置文件,让客户端定期向服务端发送心跳包,保持连接活跃。 编辑配置文件:打开用户主目录下的 .ssh/config 文件,如果该文件不存在则创建它,在文件中添加以下内容。
[root@shizhanxia.com ~]# vi ~/.ssh/config Host * ServerAliveInterval 60 ServerAliveCountMax 3
说明:
- ServerAliveInterval 60 表示客户端每隔 60 秒向服务器发送一次心跳包;
- ServerAliveCountMax 3 表示如果服务器连续 3 次没有响应心跳包,客户端才会断开连接。
(2)加载配置
保存并重新加载配置:保存文件后,后续新建立的SSH连接就会使用这个配置。
(3)使用命令行参数临时设置(可选)
在使用ssh命令连接服务器时,可以直接添加参数来设置心跳包的发送间隔:
ssh -o ServerAliveInterval=60 user@x.x.x.x
这样本次连接就会每隔 60 秒向服务器发送一次心跳包。
原创文章,作者:保哥,如若转载,请注明出处:https://www.shizhanxia.com/2276.html