問題
外網服務器用ssh去連其他linux機器,會等待30-60秒才有提示輸入密碼。嚴重影響工作效率。登錄很慢,登錄上去后速度正常。
找了很久的原因,最后修改了下面兩個參數后重連ssh正常。
1. DNS反向解析的問題
OpenSSH在用戶登錄的時候會驗證IP,它根據用戶的IP使用反向DNS找到主機名,再使用DNS找到IP地址,最后匹配一下登錄的IP是否合法。如果客戶機的IP沒有域名,或者DNS服務器很慢或不通,那么登錄就會很花時間。
解決辦法:
在目標服務器上修改sshd服務器端配置,并重啟sshd
vi /etc/ssh/sshd_config,設置UseDNS為no即可
當然也可以通過提供DNS正確反向解析的方法解決,有如下兩種思路
(1) 在server上/etc/hosts文件中把常用的ip和hostname加入,然后在/etc/nsswitch.conf看看程序是否先查詢hosts文件(一般缺省是這樣)。
修改server上的hosts文件,將目標機器的IP和域名加上去。或者讓本機的DNS 服務器能解析目標地址。
vi/etc/hostsxx.xx.xx.xxnwpp其格式是“目標機器IP 目標機器名稱”這種方法促效。沒有延遲就連上了。不過如果給每臺都加一個域名解析,挺辛苦的。但在windows下用putty或secure-crt時可以采用這種方法。
(2)起一臺dns服務器(可以是本機),加入反向解析,把這個dns服務器加入到/etc/resolv.conf中。
2. 關閉ssh的gssapi認證
用ssh -v user@server 可以看到登錄時有如下信息:
debug1:Nextauthenticationmethod:gssapi-with-micdebug1:UnspecifiedGSSfailure.Minorcodemayprovidemoreinformation注:ssh -vvv user@server 可以看到更細的debug信息
解決辦法:
在客戶端上修改ssh客戶端配置(注意不是sshd_conf)
vi /etc/ssh/ssh_config,設置GSSAPIAuthentication no 并重啟sshd
可以使用
ssh-A-oStrictHostKeyChecking=no-oGSSAPIAuthentication=no-p32200username@server_ipGSSAPI ( Generic Security Services Application Programming Interface) 是一套類似Kerberos 5 的通用網絡安全系統接口。該接口是對各種不同的客戶端服務器安全機制的封裝,以消除安全接口的不同,降低編程難度。但該接口在目標機器無域名解析時會有問題
使用strace查看后發現,ssh在驗證完key之后,進行authentication gssapi-with-mic,此時先去連接DNS服務器,在這之后會進行其他操作。
上面的問題不知道大家有沒碰過,反正我是碰了好幾次了,特別是去掉服務器之間ssh免密來執行腳本,每次都需要很久,用上面方法就可以解決這類問題了。
新聞排行
圖文播報
科普信息網 - 科普類網站
聯系郵箱:85 572 98@qq.com 備案號: 粵ICP備18023326號-39
版權所有:科普信息網 www.www44bkbkcom.cn copyright © 2018 - 2020
科普信息網版權所有 本站點信息未經允許不得復制或鏡像,違者將被追究法律責任!