目錄
-
問題:
前段時間新裝的一個虛擬機centos系統,發現用ssh登錄非常慢,要等很久,並不是虛擬機反應慢,登錄後操作反應都很正常, 所以判斷爲ssh的過程慢,查閱了一些資料,大致找到問題所在。 -
原因:
在centos系統中,有一個OpenSSH守護程序配置文件,/etc/ssh/sshd_config文件,其中記錄了OpenSSH服務的一些配置信息
其中有一項,UseDNS yes,默認是註釋掉的,但是實際的值也是yes。這個在 幫助頁中能看到:man sshd_config
這一段翻譯過來就是:
指定sshd(8)是否應查找遠程主機名,並檢查遠程IP地址的已解析主機名是否映射回同一IP地址。默認值爲“是”。
如果將此選項設置爲“否”,則在~/.ssh/authorized_keys from和sshd_config Match host指令中只能使用地址而不能使用主機名。
所以其實默認情況下,每次使用OpenSSH服務,ssh登錄的時候都會進行一次反向DNS查詢,來驗證身份,但是這並沒有什麼實際作用,反而會大量浪費驗證時間,使得登錄緩慢。
關於UseDNS選項的意義,可以參考這裏的討論 -
解決辦法:
找到問題所在,解決其實很容易,將UseDNS值修改爲否即可。
然後重啓sshd服務:
systemctl restart sshd
再重新登錄會快很多!