一、问题
登录ssh输入用户名后,等待很长时间20-30秒左右才显示输入密码提示框,从而导致通过jumpserver堡垒机登录主机时,报错:Authentication timeout
Opt> 3 开始连接到 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 10:30:100 #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 10:30:100 #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> 3 开始连接到 root@xxxxxxxxxxxx 10.0 Authentication timeout. Opt> 3 开始连接到 root@xxxxxxxxxx1.2 Last login: Wed Jun 19 11:18:52 2019 from xxx.xxx.xxx.xxx [root@localhost ~]#
连接成功