用ssh連其餘linux機器,會等待10-30秒纔有提示輸入密碼。嚴重影響工做效率。登陸很慢,登陸上去後速度正常,這種狀況主要有兩種可能的緣由:linux
1. DNS反向解析的問題編程
OpenSSH在用戶登陸的時候會驗證IP,它根據用戶的IP使用反向DNS找到主機名,再使用DNS找到IP地址,最後匹配一下登陸的IP是否合法。若是客戶機的IP沒有域名,或者DNS服務器很慢或不通,那麼登陸就會很花時間。windows
解決辦法:api
在目標服務器上修改sshd服務器端配置,並重啓sshd安全
vi /etc/ssh/sshd_config,設置UseDNS爲no便可服務器
固然也能夠經過提供DNS正確反向解析的方法解決,有以下兩種思路網絡
(1) 在server上/etc/hosts文件中把經常使用的ip和hostname加入,而後在/etc/nsswitch.conf看看程序是否先查詢hosts文件(通常缺省是這樣)。ssh
修改server上的hosts文件,將目標機器的IP和域名加上去。或者讓本機的DNS 服務器能解析目標地址。ide
vi /etc/hostsdebug
192.168.12.16 ourdev
其格式是「目標機器IP 目標機器名稱」這種方法促效。沒有延遲就連上了。不過若是給每臺都加一個域名解析,挺辛苦的。但在windows下用putty或secure-crt時能夠採用這種方法。
(2)起一臺dns服務器(能夠是本機),加入反向解析,把這個dns服務器加入到/etc/resolv.conf中。
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信息
解決辦法:
在客戶端上修改ssh客戶端配置(注意不是sshd_conf)
vi /etc/ssh/ssh_config,設置GSSAPIAuthentication no 並重啓sshd
可使用
ssh -A -o StrictHostKeyChecking=no -o GSSAPIAuthentication=no -p 32200 username@server_ip
GSSAPI ( Generic Security Services Application Programming Interface) 是一套相似Kerberos 5 的通用網絡安全系統接口。該接口是對各類不一樣的客戶端服務器安全機制的封裝,以消除安全接口的不一樣,下降編程難度。但該接口在目標機器無域名解析時會有問題
使用strace查看後發現,ssh在驗證完key以後,進行authentication gssapi-with-mic,此時先去鏈接DNS服務器,在這以後會進行其餘操做。