Image

知识库 → SSH 连接长时间延迟的原因及解决方法

[虚拟服务器]
出版日期: 07.02.2025

在连接到SSH服务时,有时需要等待很长时间,直到控制台可用以执行命令。延迟的原因有很多,本指南将讨论一些常见的原因及其解决方案。

这些解决方案通常相互独立,因此最好逐一进行调整并检查每个解决方案的效果,这样更容易找出实际原因。

提供的命令适用于Debian/Ubuntu,对于CentOS/Alma/Rocky,命令可能会有所不同。例如,服务名称可能不是“ssh”,而是“sshd” —— 执行时请注意这一点。除此之外,其他部分是相同的。

1. 最常见的原因:等待DNS服务器

打开SSH服务的配置文件:

nano /etc/ssh/sshd_config

禁用UseDNS选项,这样就不会尝试获取IP的反向DNS记录(PTR):

UseDNS no

修改后,重启服务:

service ssh restart

2. 未指定连接超时

打开SSH服务的配置文件:

nano /etc/ssh/sshd_config

将该参数设置为:

LoginGraceTime 10s

修改后,重启服务:

service ssh restart

3. 延迟长时间与systemd-logind服务有关

在这种情况下,auth.log日志通常包含如下事件:

pam_systemd(sshd:session): Failed to create session: Connection timed out

检查服务状态:

systemctl status systemd-logind

如有必要,使用restart命令重启该服务。

如果延迟依旧,使用vi或nano打开文件:

/etc/pam.d/common-session

将该行注释掉,前面加上#符号:

#session	optional	pam_systemd.so

然后,重启该服务:

systemctl restart systemd-logind

再次尝试,但请记住,使用这种设置时,控制台可能无法完全正常工作,因此该选项应视为临时解决方案。





暂时没有评论