web-dev-qa-db-ja.com

キーによるSSHは信じられないほど遅い

私のマシンからのキーとのSSH接続が突然信じられないほど遅くなりました(〜10秒!)。私が理解できる限り、これはサーバーやDNSの問題ではありません。

この問題は、私のbuntu 15.04 x86_64で、単純なapt-get install kubuntu-desktopといくつかのマイナーなKDE関連のいじくり回しの後に突然現れました。

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に戻ったので、これについてはもう気にしません...しかし、それは関連している可能性があります)

3
NeuronQ

私にとって実際の解決策は、ローカルホストのAddressFamily inetを適切なホストの場合は~/.ssh/configに、/etc/ssh/ssh_configの場合はHost *に追加することでした。

問題の原因はおそらくUbuntu15.05への最近のアップグレードであり、sshは現在IPv6を使用しようとしていました(しかし失敗し、大幅な遅延がありました...)。

0
NeuronQ

パスワード認証で同じ問題が発生しますか、それともこれは本当にキー認証に関連していますか?

クライアントは適切なDNS解決を提供できますが、とにかくIPアドレスから逆ルックアップを実行しようとするのはサーバーです。 @kasperdが言うように、これは遅延を説明するかもしれません。しかし、経験から、これは数秒を超えません。

SSHは最終的に認証に成功しますか?もしそうなら、それは本当にDNSの問題のように見えます。構成/管理者が許可する場合は、IP /ホスト名をサーバーの/ etc/hostsに追加してみてください。これにより、サーバー側のDNS解決がバイパスされます。クライアントのサーバー側で適切な逆引き参照を提供するようにDNSを構成しない場合、@ kasperdが言うように、useDNS noはサーバーの/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 
4
philippe