要連接那臺機器,就在哪臺機器上修改下面的文件
==============================================
vim /etc/ssh/sshd_config
GSSAPIAuthentication no
UseDNS no
=============================================
原理說明:
SSH協議介紹:SSH 為 Secure Shell 的縮寫,由 IETF 的網絡工作小組(Network Working Group)所制定;SSH 為建立在應用層和傳輸層基礎上的安全協議。SSH 是目前較可靠,專為遠程登錄會話和其他網絡服務提供安全性的協議。利用 SSH 協議可以有效防止遠程管理過程中的信息泄露問題。
對于這個問題我們可以用ssh的詳細模式跟蹤(ssh -v x.x.x.x)一下,發現主要問題出在GSS認證和DNS解析上。在SSH連接中,GSSAPIAuthentication 參數主要是用于 Kerberos 校驗認證的,USEDNS是用來做反向查詢的。看一個圖示:
最后一行顯示了GSSAPI認證的進行過程。在UseDNS選項打開狀態下,當客戶端試圖登錄OpenSSH服務器時,服務器端先根據客戶端的IP地址進行DNS PTR反向查詢,查詢出客戶端的host name,然后根據查詢出的客戶端host name進行DNS 正向A記錄查詢,驗證與其原始IP地址是否一致,這是防止客戶端欺騙的一種手段,但一般我們的IP是不會有PTR記錄的,打開這個選項只能浪費時間,所以這兩項認證可以關閉。
針對分析的結果,我們修改/etc/ssh/sshd_config 文件,設置GSSAPIAuthentication no ,同時設置 UseDNS no,最后保存修改,重啟sshd服務再連接這個問題就可以解決了。