1. 程式人生 > >SSH遠端登陸伺服器要很久才出現輸入密碼介面怎麼辦

SSH遠端登陸伺服器要很久才出現輸入密碼介面怎麼辦

經常通過ssh遠端主機,同樣是Linux主機,其中一些建立 ssh 連線速度特別慢,連線建立之後執行操作速度卻很正常,看來應該不是網路原因。解決的方法是通過ssh-vv引數來檢視除錯資訊的:

經常遇到情況有兩種:

一、GSSAPIAuthentication認證失敗問題。

ssh -vv 來檢視並分析連線過程中的問題,發現連線過程中會停留在這裡好久:

debug1:Authentications that can continue: publickey,gssapi-with-mic,password
debug1: Next authentication method:
gssapi-with-mic


debug1: Unspecified GSS failure. Minor code may provide more information
No credentials cache found

debug1:Unspecified GSS failure. Minor code may provide more information
No credentials cache found

debug1:Unspecified GSS failure. Minor code may provide more information

debug1:Next authentication method: publickey

原來是因為嘗試了個gssapi-with-mic認證方式失敗浪費了時間,開啟(本機的或者說是客戶端的)/etc/ssh/ssh_config把裡面的GSSAPIAuthentication yes改成no 關掉它並重啟sshd服務,即可讓 ssh直接嘗試password認證方式。

禁用 GSSAPIAuthentication前後建立 ssh連線時間的對比:

view plaincopy to clipboardprint?
[[email protected] ~]# time ssh [email protected]

[email protected]'s password:

Last login: Thu Jan  5 05:44:30 2017 from 192.168.1.95

[[email protected] ~]# exit

logout

Connection to 192.168.1.96 closed.

real  0m3.303s

user 0m0.015s

sys   0m0.016s

[[email protected] ~]#

二、DNS問題

SSH 登入太慢可能是 DNS 解析的問題,預設配置下 sshd 初次接受 ssh 客戶端連線的時候會自動反向解析客戶端 IP 以得到 ssh 客戶端的域名或主機名。

如果這個時候 DNS 的反向解析不正確,sshd 就會等到 DNS 解析超時後才提供 ssh 連線,這樣就造成連線時間過長、ssh 客戶端等待的情況,一般為10-30秒左右。有個簡單的解決辦法就是在 sshd 的配置檔案(sshd_config)裡取消 sshd 的反向 DNS 解析。

#   GSSAPIDelegateCredentials no
#   GSSAPIKeyExchange no
#   GSSAPITrustDNS no
#   BatchMode no
#   CheckHostIP yes

預設情況下是以上格式,沒有顯式的設定GSSAPITrustDNS為 no ,需要把這一行取消註釋,然後重啟sshd服務再進行連線。

綜上:在連線過程中可以用ssh -vv [email protected] 來Debug連線過程,最終找到問題。