一、问题
登录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 ~]#
连接成功