使用ssh客戶端(如:putty)連接Linux服務器,可能會等待10-30秒纔有提示輸入密碼,嚴重影響工作效率。登錄很慢,登錄上去後速度正常,這種情況主要有兩種可能的原因:
1. DNS反向解析問題
OpenSSH在用戶登錄的時候會驗證ip,它根據用戶的IP使用反向DNS找到主機名,再使用DNS找到IP地址,最後匹配一下登錄的IP是否合法。如果客戶機的IP沒有域名,或者DNS服務器很慢或不通,那麼登錄就會很花時間。
解決辦法:
在目標服務器上修改sshd服務器端配置,並重啓sshd
vi/etc/ssh/sshd_config
UseDNS no
2. 關閉ssh的gssapi認證
用ssh -v user@server 可以看到登錄時有如下信息:
debug1: Next authentication method:gssapi-with-mic
debug1: Unspecified GSS failure.Minor code may provide more information
注:ssh -vvv user@server 可以看到更細的debug信息
解決辦法:
修改sshd服務器端配置
vi /etc/ssh/ssh_config
GSSAPIAuthentication no
可以使用ssh -o GSSAPIAuthentication=no user@server登錄
GSSAPI ( Generic Security Services Application Programming Interface) 是一套類似Kerberos 5的通用網絡安全系統接口,該接口是對各種不同的客戶端服務器安全機制的封裝,以消除安全接口的不同,降低編程難度,但該接口在目標機器無域名解析時會有問題,使用strace查看後發現,ssh在驗證完key之後,進行authentication gssapi-with-mic,此時先去連接DNS服務器,在這之後會進行其他操作