Linux SSH登入慢案例分析

2021-12-29 20:10:38 字數 4490 閱讀 7333

手頭有台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的目錄選擇使用者主目...