*ユーザー名* の認証失敗が多すぎます

*ユーザー名* の認証失敗が多すぎます

SSH アクセスが有効になっている hostgator アカウントを持っています。生成された .pub キー ファイルを次のコマンドでアップロードしようとすると、

rsync -av -e "ssh -p2222" /home/user/.ssh/key.pub [email protected]:.ssh/authorized_keys

私は次のことを繰り返し受け取ります:

111.222.33.44 から切断を受信しました: 2: ユーザー名の認証失敗が多すぎます
rsync: 接続が予期せず閉じられました (これまでに受信したバイト数 0) [送信者]
rsync エラー: io.c(601) で説明できないエラー (コード 255) [送信者 = 3.0.7]

以前、認証に失敗するまで ssh をいじっていました。しかし、認証失敗カウンターがリセットされないようです (12 時間以上待っていますが、テクニカル サポートは 30 分から 1 時間後にリセットされると「想定」しており、別の人は「ユーザー名でログインしようとするたびにリセットされる」と言っていました。うわあ)。

これは私をイライラさせます。私はこれを Slicehost のカスタム サーバーでセットアップしましたが、これらの人たちよりも問題は少なかったです。

何かヒントはありますか? おそらく、サーバー側ではなくクライアント側の問題です。

答え1

これは通常誤って複数のSSHキーを提供したために発生したサーバーにキーが多すぎると、サーバーはキーを拒否します。

-vコマンドにフラグを追加して詳細な出力を取得することで、これを自分で確認できますssh。サーバーが次のように接続を拒否するまで、一連のキーが提供されることがわかります。「[ユーザー] の認証失敗が多すぎます」詳細モードを使用しない場合、あいまいなメッセージのみが表示されます。「ピアによって接続がリセットされました」

無関係なキーが提供されないようにするには、次のように~/.ssh/config追加して、(クライアント マシン上の) ファイル内のすべてのホスト エントリにこれを明示的に指定する必要があります。IdentitiesOnly

Host www.somehost.com
  IdentityFile ~/.ssh/key_for_somehost_rsa
  IdentitiesOnly yes
  Port 22

ssh-agent を使用する場合は、実行してssh-add -DID をクリアすると役立ちます。

sshssh ホスト構成を使用していない場合は、次のようにコマンド で正しいキーを明示的に指定する必要があります。

ssh -i some_id_rsa -o 'IdentitiesOnly yes' them@there:/path/

注意: 'IdentitiesOnly yes' パラメータは引用符で囲む必要があります。

または

ssh -i some_id_rsa -o IdentitiesOnly=yes them@there:/path/

答え2

これを行うより簡単な方法を見つけました (パスワード認証を使用する場合):

ssh -o PubkeyAuthentication=no [email protected]

これにより、非キー認証が強制されます。すぐにログオンできました。

参照

答え3

私もこのエラーが発生していましたが、サーバーが最大 6 回の試行を受け入れるように設定されているために発生していることがわかりました。

/etc/ssh/sshd_config
...
...
#MaxAuthTries 6

IdentitiesOnly yesファイル内での設定に加えて、~/.ssh/config他にもいくつかのオプションがあります。

  1. MaxAuthTries(SSHサーバー上で)を増やす
  2. ディレクトリにあるキーペアのいくつかを削除して~/.ssh/実行しますssh-add -D
  3. ~/.ssh/configファイル内の特定のホストにキーを明示的にリンクする

そのようです:

host foo
hostname foo.example.com
IdentityFile /home/YOU/.ssh/foo
  1. 特定の接続試行でより多くのキーを受け入れるようになるため、SSH サーバーが少し弱体化することを考慮すると、これはおそらく良い方法ではありません。ここではブルート フォース攻撃ベクトルについて考えてください。

  2. 必要のないキーがあり、永久に削除できると仮定すると、これは良い方法です。

  3. そして、IdentitiesOnly を設定するアプローチは、おそらくこの問題に対処するための好ましい方法です。

答え4

次の SSH エラーが発生した場合:

$ Received disconnect from host: 2: Too many authentication failures for root

これは、.ssh ディレクトリに 5 つ以上の DSA/RSA ID ファイルが保存されており (私のシステムではデフォルト)、コマンド ラインで '-i' オプションが指定されていない場合に発生する可能性があります。

ssh クライアントは、最初に各 ID (秘密鍵) を使用してログインを試行し、次にパスワード認証を要求します。ただし、sshd は 5 回の不正なログイン試行後に接続を切断します (この場合も、デフォルトは異なる場合があります)。

.ssh ディレクトリに複数の秘密鍵がある場合は、オプション引数 '-o' を使用してコマンド ラインで「公開鍵認証」を無効にすることができます。

例えば:

$ ssh -o PubkeyAuthentication=no root@host

関連情報