手頭有台linux伺服器ssh登入時超級慢,需要幾十秒。其它伺服器均沒有這個問題。平時登入操作都默默忍了。今天終於忍不住想搞清楚到底什麼原因。搜尋了一下發現了很多關於ssh登入慢的資料,於是自己也學著來分析、印證一下ssh登入慢的原因。
出現ssh登入慢一般有兩個原因:dns反向解析的問題和ssh的gssapi認證
1:ssh的gssapi認證問題
gssapi ( generic security services application programming inte***ce) 是一套類似kerberos 5 的通用網路安全系統介面。該介面是對各種不同的客戶端伺服器安全機制的封裝,以消除安全介面的不同,降低程式設計難度。但該介面在目標機器無網域名稱解析時會有問題
預設情況下,gssapiauthentication在伺服器端和客戶端都啟用的。如果dns服務出現問題,那麼登入過程要等到dns查詢超時後才能繼續,這就是為什麼ssh登入提示符要等很久才出現的原因。 為什麼ssh登入過程中要用到dns解析服務呢?這個是gssapi認證方式需要的緣故。
所以在配置檔案/etc/ssh/sshd_config(伺服器)或/etc/ssh/ssh_config(客戶端)將引數gssapiauthentication設定為no可以解決ssh登入慢的問題。
2:dns反向解析的問題
openssh在使用者登入的時候會驗證ip,它根據使用者的ip使用反向dns找到主機名,再使用dns找到ip位址,最後匹配一下登入的ip是否合法。如果客戶機的ip沒有網域名稱,或者dns伺服器很慢或不通,那麼登入就會很花時間。
問題分析:
首先可以在ssh命令後面加上「-v「 引數,輸出debug資訊定位問題。 具體操作為ssh -v root@serverip
從上面輸出資訊看到有關於unspecified gss failure,於是我將/etc/ssh/sshd_config(伺服器)或/etc/ssh/ssh_config(客戶端)將引數gssapiauthentication設定為no,重啟了sshd服務,測試發現ssh登入還是很慢。
[root@localhost ~]# service sshd status
openssh-daemon (pid 3594) is running...
[root@localhost ~]# service sshd restart
stopping sshd: [ ok ]
starting sshd: [ ok ]
那麼原因應該是dns反向解析的問題,關於dns反向解析的問題有幾個解決方法:
1:在server上/etc/hosts檔案中把常用的ip和hostname加入,然後在/etc/nsswitch.conf看看程式是否先查詢hosts檔案
2:在server上/etc/ssh/sshd_config檔案中修改或加入usedns=no。然後重啟sshd服務
我在/etc/ssh/sshd_config上將usedns設定為no,重啟sshd服務後,然後測試ssh連線速度。果然飛快連線上。看來主要還是dns反向解析的問題。
解決Linux SSH登入慢
出現ssh登入慢一般有兩個原因 dns反向解析的問題和ssh的gssapi認證 1 ssh的gssapi認證問題 5的通用網路安全系統介面。該介面是對各種不同的客戶端伺服器安全機制的封裝,以消除安全介面的不同,降低程式設計難度。但該介面在目標機器無網域名稱解析時會有問題 預設情況下,gssapiau...
解決Linux SSH登入慢
出現ssh登入慢一般有兩個原因 dns反向解析的問題和ssh的gssapi認證 1 ssh的gssapi認證問題 5的通用網路安全系統介面。該介面是對各種不同的客戶端伺服器安全機制的封裝,以消除安全介面的不同,降低程式設計難度。但該介面在目標機器無網域名稱解析時會有問題 預設情況下,gssapiau...
Linux ssh遠端登入
1 使用ssh遠端登入linux主機 ssh 伺服器使用者名稱 伺服器ip,s輸入口令即可。2 在windows上登入linux的常用軟體有securcrt和putty 3 使用ssh秘匙跳過密碼輸入遠端登入 一 本地生成公匙和秘匙。執行 ssh keygen t rsa rsa的目錄選擇使用者主目...