SSH 連線卡頓解決辦法

HuDu發表於2020-08-10

問題

本機和伺服器都在同一內網,可以互相 ping 通,但是本機 ssh 遠端連線伺服器時,終端輸入命令總是會出現卡頓的問題。
測試了一下,在卡頓的同時,互相時丟包無法ping 通的,但是兩者上網都沒有問題。

原因一:SSH伺服器預設開啟了DNS的查詢功能:UseDNS=yes

UseDNS選項處於開啟狀態時,客戶端試圖登入SSH伺服器,伺服器端先根據客戶端的IP地址進行DNS PTR反向查詢出客戶端的主機名,然後根據查詢出的客戶端主機名進行DNS正向A記錄查詢,驗證與其原始IP地址是否一致,這是防止客戶端欺騙的一種措施,但一般我們的是動態IP不會有PTR記錄,開啟這個選項不過是在白白浪費時間而已,不如將其關閉。

vim /etc/ssh/sshd_config
   UseDNS=no
   #新增該選項
   service sshd restart
   #重啟sshd服務
原因二:若SSH伺服器開啟了GSSAPI登入驗證模式:GSSAPIAuthentication=yes,預設不開啟

GSSAPI是公共安全事務應用程式介面(GSS-API)
GSSAPIAuthentication 是否允許使用基於 GSSAPI 的使用者認證.預設值為”no”.僅用於SSH-2.
GSSAPICleanupCredentials 是否在使用者退出登入後自動銷燬使用者憑證快取。預設值是”yes”.僅用於SSH-2.
若伺服器開啟了該驗證機制,但客戶端並未使用該身份驗證機制,則會導致驗證過程出現延遲

   vim /etc/ssh/sshd_config
   GSSAPIAuthentication=no
   #關閉GSSAPI驗證機制
   service sshd restart
   #重啟sshd服務
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章