一、問題
登錄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 ~]#
連接成功