遅すぎるsshログインを高速化するには?


42

実行にssh user@hostnameは30秒かかります。シナリオは次のとおりです。

  • これはローカルLAN上のVMです
  • WindowsおよびMacマシンはインスタントログインを取得します
  • Debianを使用しており、Ubuntuマシンで再現できました
  • Ubuntuを使用している人は、私のマシン(ローカルLAN)へのログインも瞬時に行われると言います
  • ホスト名IPアドレスの使用には約半分の時間がかかります(〜15秒)

[ 更新 ]

を使用してssh -vvv user@hostname、ここで最も待機します。

debug3: authmethod_lookup gssapi-with-mic
debug3: remaining preferred: publickey,keyboard-interactive,password
debug3: authmethod_is_enabled gssapi-with-mic
debug1: Next authentication method: gssapi-with-mic

そして、ここで少し待機します:

debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_1000' not found

debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_1000' not found

1
パスワード認証またはパブキー認証を使用していますか?そして、パスワード場合、aはid_dsaあるいはid_rsaあなたの中のファイル~/.ssh?多分あなたのSSHのインストールが最初に間違った認証を試みると、サーバーは否定したが、単にその30代のタイムアウトが生じ、その要求を無視しない
トビアスKienzler

@tobiasパスワードを使用していますが、"~/.ssh"ファイルがありません。これはディレクトリであり、"known_hosts"ファイルのみが含まれています。
シェパン

5
15秒のDNSタイムアウトがあるようです。サーバーがDNSルックアップを実行している可能性があります。あなたができる場合は、必ず持たせるUseDNS noにはsshd_config、サーバー上。いずれにssh -vvv user@hostnameしても、ログインがハングしている場所を確認するために実行します。
ジル 'SO-悪であるのをやめる'

@gilありがとう。質問を更新しました。そのUseDNS設定を確認するよう管理者に依頼します。
シェパン

3
@Tshepang:ああ、Kerberos(GSSAPI)認証を使用しています。私はそれに精通していません。構成が正しくない場合、遅延の原因である可能性があります。これは、管理者に尋ねることができるものです。DNSは赤いニシンかもしれません。それは野生で最も一般的な原因ですが、おそらくあなたの問題は異なります。
ジル 'SO-悪であるのをやめる'

回答:


32

/ etc / ssh / ssh_config」を編集して、次の行をコメントアウトします。

GSSAPIAuthentication yes
GSSAPIDelegateCredentials no

3
+1いい答えです!(1)sshログイン接続がカーソルの点滅に7回かかるのは通常の速度ですか?(2)なぜそれはコメントアウトすることによって動作ん GSSAPIAuthentication yesGSSAPIDelegateCredentials no?@Tshepang
ティム

@Tim(1)それは長すぎます...接続によっては、2秒以上かかるとは思いません。(2)私はそれが機能するというだけで
見当がつかない-tshepang

1
OpenSSHのほとんどのバージョンでのGSSAPIAuthenticationのデフォルトは「no」ですが、一部のディストリビューションでは、sshd_configおよびssh_configファイルで「yes」に設定しています。必要ない/使用しない場合、接続/認証ハンドシェイクが遅くなります。
tgharold

LDAP / AD認証が使用されている場合、GSSAPIを無効にすると、単純なバインドが使用され、ネットワーク上でパスワードがプレーンテキストで送信される可能性はありませんか?
シャノン14

すべてのネームサーバーが/etc/resolv.confにまだ存在することを確認します。そうでない場合は、それらを取り出します。これで問題が解決しました。
テクノクラート

30

この問題が発生したため、SSHで逆引きDNS解決をオフにすることで解決しました。

だから、中sshd_configサーバーこれを変更します:

 #UseDNS yes

これに:

UseDNS no

1
変更を行い(コメントアウトされたUseDNSオプションはありませんでした)、sshサーバーをリセットしましたが、それでも同じ問題がありました。
シェパン

2
@Tsheうーん、奇妙です。私がこれまでSSHで経験した唯一の速度の問題はこれによるものでした。
アールズ

1
IPアドレス(ホームLAN)を使用してログインするのに使用するのに懐疑的でしたが、この解決策で問題が解決しました。Googleのために、それは直後に発生していましたが、遅延は「key:/home/mylogin/.ssh/id_ecdsa((nil))」メッセージとは関係ありません(実行中ssh -vvv)。
スキッピールグラングロウ

7

DNS設定を確認しましたか?

で設定mdns offを試してください/etc/host.conf

これにより、mdns解決が無効になり、非常に役立ちました。

編集:

gentooはこれを少し異なる方法で処理しているようです。マルチキャストDNSルックアップを無効にするには、ファイルを変更する必要があります/etc/nsswitch.conf
次のようなものがあるはずです。

hosts:          files mdns

次のように変更します。

hosts:          files dns

+1良いアイデア。ホスト名のIPを直接使用すると、@ Tshepangはssh接続を高速化しますか?
トビアスキンツラー

@tobiasには半分の時間がかかります
-tshepang

私はそうだ/etc/host.conf: line 2: bad command 、私が実行したときにoff'`のmDNSをssh user@hostname
シェパン

glibc 2.3.x(2006):forums.gentoo.org/viewtopic-t-476558-highlight-mdns.html以降、これは古い設定のようです。何を使用していますか(OS、glicバージョン)?
シェパン

1
IPアドレスを使用すると半分の時間しかかからないと言っています。これは、名前解決に問題があることを意味します(IP => FQDNまたはFQDN => IP)。したがって、まずDNS構成を確認してから、sshに問題があるかどうかを確認してください。
クリスチャン


1

また、nscdがインストールされ実行されているかどうかを確認します。

DNSキャッシュがないと、PTRレコードの解決にかかる時間が長くなる可能性があります(sshクライアントがサーバーのIPアドレスに対してDNS逆ルックアップを実行していると仮定)


0

Windows 2008 R2環境でも同じ問題が発生しますが、「useDNS no」が機能しません。

ホストファイルに接続サーバーのIPとホストを追加し、30秒高速化します。そのため、解決策はDNSにあると思われます。

DNSサーバーを追加しようとしましたが、これで解決しません。

サーバーには2つのDNSサフィックスがあります。1はサーバーが属する企業ドメイン(domain.com)、もう1つはプライベートネットワークに接続する外部インターフェイス(domain.net)に使用します。

DNSサフィックスの順序は、最初にdomain.net、次にdomain.comです。

私のSFTP / SSHクライアントは企業ドメインにあります。ところで、問題のあるクライアントは企業ドメインからのものです。

私にとってうまくいくのは、まずdomain.comを作成し、次にdomain.netを作成することです

以前の2m30s接続遅延は3-4秒のみになりました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.