從我的機器上使用金鑰進行 SSH 連線突然變得非常慢(約 10 秒!)。據我所知,這不是伺服器或 DNS 問題。
經過簡單的和一些與 KDE 相關的小改變之後,問題突然出現了apt-get install kubuntu-desktop
,在我的Ubuntu 15.04 x86_64。
運行ssh -vv ...
顯示它在最後一行等待了很長時間(大部分~10秒......):
OpenSSH_6.7p1 Ubuntu-5ubuntu1, OpenSSL 1.0.1f 6 Jan 2014 debug1: Reading configuration data /home/neuronq/.ssh/config debug1: /home/neuronq/.ssh/config line 1: Applying options for XXX.com debug1: Reading configuration data /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config line 19: Applying options for *
……我的/etc/ssh/ssh_config
包含這個(我沒有貼上註解掉的行):
Host *
SendEnv LANG LC_*
HashKnownHosts yes
GSSAPIAuthentication no
GSSAPIDelegateCredentials no
有什麼方法可以讓 Kubuntu 桌面安裝突然導致速度變慢(一些密鑰庫/錢包奇怪的事情)?(另外,在 KDE 中,我根本無法透過金鑰進行 ssh 登錄,除非在終端機中手動執行ssh-add
並輸入我的金鑰密碼,但我已經完全放棄了 KDE,我又回到了Unity,所以我不再關心這個......但它可能是相關的)
答案1
您是否也因密碼認證而遇到同樣的麻煩,或者這確實與密鑰認證有關?
您的用戶端可能會提供正確的 DNS 解析,但您的伺服器無論如何都會嘗試從您的 IP 位址執行反向查找;正如 @kasperd 所說,這可以解釋延遲。但根據經驗,這不會超過幾秒鐘。
SSH最終認證成功了嗎?如果是這樣,看起來確實是 DNS 問題。如果您的設定/管理員允許,請嘗試將您的 IP/主機名稱新增至伺服器的 /etc/hosts 中。這將繞過伺服器端的 DNS 解析。如果您不將 DNS 配置為在伺服器端為用戶端提供正確的反向查找,useDNS no
則如 @kasperd 所說,將放在/etc/ssh/sshd_config
伺服器上。
如果您的管理員不這樣做,您就無能為力。
編輯:KDE/Unity 或任何桌面管理器絕對不可能導致這種速度減慢。事實如此,我會感到非常驚訝。然而,您需要提供ssh-add
才能使用密鑰的事實很有趣。此命令用於使您的身份驗證代理記住您為密鑰提供的密碼。若要指定要使用的金鑰,可以透過命令列或在檔案中執行~/.ssh/config
:
# in your command line:
ssh -i /path/to/your/private/key user@host
# or in your /home/$user/.ssh/config file:
# (on command line later, simply use ssh user@host or ssh host if
# user locally and remotely are the same
Host $myhost
IdentityFile /path/to/your/private/key
IdentitiesOnly yes
答案2
對我來說,實際的解決方案是AddressFamily inet
在我的本地主機上添加到~/.ssh/config
適當的主機或./etc/ssh/ssh_config
Host *
問題的原因很可能是最近升級到 Ubuntu 15.05,而 ssh 現在正在嘗試(但失敗了,延遲很大...)使用 IPv6。