透過金鑰進行 SSH 速度極為緩慢

透過金鑰進行 SSH 速度極為緩慢

從我的機器上使用金鑰進行 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_configHost *

問題的原因很可能是最近升級到 Ubuntu 15.05,而 ssh 現在正在嘗試(但失敗了,延遲很大...)使用 IPv6。

相關內容