ssh – *username* の認証失敗が多すぎます

authentication ssh

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

rsync -av -e "ssh -p2222" /home/user/.ssh/key.pub username@111.222.33.44:.ssh/authorized_keys

私は何度も何度も

Received disconnect from 111.222.33.44: 2: Too many authentication failures for username
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(601) [sender=3.0.7]

私は以前、認証に失敗するまでsshをいじっていました。しかし今は、認証失敗カウンタがリセットされないようです(12時間以上待っていますが、技術サポートは30分から1時間後にリセットされると “仮定しています”、別の人が “ユーザ名でログインしようとするたびにリセットされます “と言っていました

これは私を狂わせている。私もSlicehostのカスタムサーバーでこれをセットアップしていたし、これらの人たちよりも問題が少なかった

何かヒントは?おそらくそれはサーバー側ではなく、クライアント側の何かです

  274  Gabriel A. Zorrilla  2010-09-12


ベストアンサー

これは通常、不注意で複数の ssh 鍵をサーバに提供してしまうことで起こります。あまりにも多くの鍵が提供されると、サーバはどの鍵も拒否します

-v フラグを ssh コマンドに追加することで、詳細な出力を得ることができます。サーバが接続を拒否するまで、たくさんの鍵が提供されているのがわかるでしょう。”Too many authentication failures for [user] “とサーバが接続を拒否するまで、たくさんの鍵が提供されているのがわかります。verbose モードを使わないと、”Connection reset by peer” という曖昧なメッセージしか表示されません

無関係な鍵が提供されないようにするためには、~/.ssh/config (クライアントマシン上の) ファイルの各ホストエントリに、以下のように IdentitiesOnly を追加して明示的に指定しなければなりません

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

ssh-agent を使う場合は、ssh-add -D を実行して ID をクリアするのが便利です

ssh hosts の設定を使用していない場合は、ssh コマンドで以下のように正しい鍵を明示的に指定しなければなりません

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

注意: ‘IdentitiesOnly yes’ パラメータは引用符で区切る必要があります

or

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

440  John T  2010-09-12


もっと簡単な方法を見つけました(パスワード認証を使う場合)

ssh -o PubkeyAuthentication=no username@hostname.com

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

Reference

205  Ben West  2012-03-25


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

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

IdentitiesOnly yes~/.ssh/configファイルに設定する以外にも、いくつかのオプションがあります

  1. (ssh サーバ上の)MaxAuthTriesを増やす
  2. ~/.ssh/ディレクトリに存在するキーペアを削除し、ssh-add -Dを実行してください
  3. ~/.ssh/config ファイルの中で、キーを指定したホストに明示的にリンクします

Like so:

host foo
hostname foo.example.com
IdentityFile /home/YOU/.ssh/foo
  1. これはおそらく良い方法ではないでしょう。 ssh サーバを少し弱体化させてしまいます。ここでは、ブルートフォース攻撃のベクトルを考えてみてください

  2. あなたが必要とされていないと永久に削除することができるキーを持っていると仮定して、行くのに良い方法です

  3. そして、IdentitiesOnlyを設定するというアプローチは、おそらく好ましい対処法だと思います

29  slm  2011-06-09


これを ~/.ssh/config に追加しました

Host *
IdentitiesOnly yes

デフォルトではIdentitiesOnly=yesオプションを有効にしています。秘密鍵で接続する必要がある場合は、オプション -i で指定する必要があります

8  Евгений Шаповалов  2014-07-23


以下のようなSSHエラーが出たら

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

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

ssh クライアントは最初に各 ID (秘密鍵) を使用してログインを試み、次にパスワード認証のプロンプトが表示されます。しかし、sshd は 5 回の不正なログイン試行の後に接続を切断します (ここでもデフォルトは変化するかもしれません)

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

For example:

$ ssh -o PubkeyAuthentication=no root@host

6  Will Verna  2013-09-20


パスワードを持っていて、パスワードを使ってシンプルにログインしたい場合は、その方法をご紹介します

パスワード認証のみを使用し、Public-key を使用せず、やや誤解を招く “keyboard-interactive” (パスワードを含む上位セット) を使用しないようにするには、コマンドラインから以下のようにします

ssh -o PreferredAuthentications=password user@example.com

6  Greg Rundlett  2015-06-19


David が言っていたのと同じように、この IdentitiesOnly yes を .ssh/設定に追加するだけで、ssh -o PubkeyAuthentication=no. と同じことができます

ログインしたら、.ssh/authorized_keysを削除します。さて、ローカルマシンに戻って、以下のように入力します

cat ~/.ssh/id_rsa.pub | ssh -o PubkeyAuthentication=no user@IP_ADDR 'cat >> .ssh/authorized_keys'.これで公開鍵を使って ssh を再利用できるようになるはずです

3  Alan Dong  2014-01-25


これは古いスレッドですが、私も同じエラーメッセージに遭遇しましたが、鍵を使用しているユーザではなく、.ssh フォルダの所有者が root であることが原因でした。私は以下のコマンドを実行して問題を修正しました

sudo chown -R user:user /home/user/.ssh

また、.ssh フォルダのパーミッションが正しいことも確認しました

sudo chmod 700 /home/user/.ssh

.ssh ディレクトリ内のファイルは、600 のパーミッションを持つ必要があります

sudo chmod 600 /home/user/.ssh/authorized_keys

2  Adam  2014-06-13


私の場合、問題はディレクトリのパーミッションでした。これは私のためにそれを修正しました

$ chmod 750 ~;chmod 700 ~/.ssh

1  tbc0  2016-02-20


認証失敗が多すぎる

このメッセージは、リモートの SSH サーバで強制されている許可された制限の中で、 認証に失敗した回数が多すぎるために発生します。これは、SSH エージェントに追加された ID が多すぎることを意味している可能性があります

ここでは、いくつかの提案を紹介します

  • -vを追加して、それがそうであるかどうかを確認します(アイデンティティを使いすぎています)
  • ssh-add -lで追加されたIDをリストアップします
  • でエージェントから失敗したIDを削除する。ssh-add -d
  • また、ssh-add -DですべてのIDを削除し、関連するIDだけを追加することもできます
  • SSHサーバにアクセスしている場合は、MaxAuthTriesオプションにチェックを入れてください(参照: man sshd_config)

    関連記事です。sshd_configの’MaxAuthTries’制限のための接続は?

  • どれも役に立たない場合は、正しい資格情報やファイルを使用しているかどうかを確認してください

1  kenorb  2018-04-12


私の場合は、ユーザー名 “ubuntu “を使用していたために発生していましたが、このインスタンスのユーザー名は “ec2-user “でした

John T “の提案通りにやってみたら、このエラーが出ました

許可は拒否された(publickey)

そして、私はこの回答の中に解決策(すなわち、ユーザー名を “ec2-user “に変更)を見つけました。https://stackoverflow.com/questions/1454629/aws-ssh-access-permission-denied-publickey-issue

0  Deepak Joy  2014-11-19


公開鍵を.ssh/authorized_keys2に入れていたのですが、サーバーは.ssh/authorized_keysしか読めないように設定されていました

# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile .ssh/authorized_keys

ファイルを.ssh/authorized_keysに移動したら、自分のキーで正常にログインできるようになりました

0  Benedikt Köppel  2017-05-05


これは私のための楽しいものでした。リモートログインに使用していたキーボードとは異なるローカライズモードで、ローカルでパスワードを変更していたことが判明した。これにより、私のパスワードは事実上、私が思っていたものとは違ったものになってしまいました。これは、私の特殊文字の一つがキーボードが言っていたものと違っていたからでしょう

0  ekeyser  2019-11-24


このメッセージは、正しいユーザー名とパスワードが入力されていない場合に表示されることがあります

まず、ユーザーがリストアップされていることを確認します

vim /etc/passwd

-1  Matoeil  2016-09-26


タイトルとURLをコピーしました