解决ssh登录很慢的问题以及jumpserver登录主机出现:Authentication timeout

时间:2022-03-20 04:34:11

一、问题

登录ssh输入用户名后,等待很长时间20-30秒左右才显示输入密码提示框,从而导致通过jumpserver堡垒机登录主机时,报错:Authentication timeout

Opt> 

开始连接到 root@XXXXXXXXXXX 10.0
Authentication timeout. Opt>

二、原因

在网上查了大量的资料得知可能是由于DNS解析的问题导致的,具体为server的sshd会去DNS查找访问client IP的hostname,如果DNS不可用或者没有相关记录,就会耗费大量时间。

正常情况下默认配置下 sshd 初次接受 ssh 客户端连接的时候会自动反向解析客户端 IP 以得到 ssh 客户端的域名或主机名。如果这个时候 DNS 的反向解析不正确,sshd 就会等到 DNS 解析超时后才提供 ssh 连接,这样就造成连接时间过长、ssh 客户端等待的情况,一般为10-30秒左右。有个简单的解决办法就是在 sshd 的配置文件(sshd_config)里取消 sshd 的反向 DNS 解析

 

三、解决

登录主机修改/etc/ssh/sshd_config

[root@localhost ~]# vim /etc/ssh/sshd_config

查找:UseDNS

#ShowPatchLevel no
#UseDNS yes
#PidFile /var/run/sshd.pid
#MaxStartups ::
#PermitTunnel no
#ChrootDirectory none
#VersionAddendum none # no default banner path
#Banner none # Accept locale-related environment variables
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
/UseDNS

默认是yes,使用dns解析,我们把它修改为no,禁用dns解析

#UseDNS yes
UseDNS no
#PidFile /var/run/sshd.pid
#MaxStartups ::
#PermitTunnel no
#ChrootDirectory none
#VersionAddendum none # no default banner path
#Banner none # Accept locale-related environment variables
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES

保存退出,重启sshd服务

[root@localhost ~]# systemctl restart sshd

再次通过堡垒机登录主机

Opt> 

开始连接到 root@xxxxxxxxxxxx 10.0
Authentication timeout. Opt> 开始连接到 root@xxxxxxxxxx1.
Last login: Wed Jun :: from xxx.xxx.xxx.xxx
[root@localhost ~]#

连接成功