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