web-dev-qa-db-ja.com

* username *の認証失敗回数が多すぎます

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

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

私は得続けます:

 111.222.33.44からの切断切断を受信しました:2:ユーザー名の認証失敗回数が多すぎます[r] [r] [r] [] [] [] rsyncエラー:原因不明のエラー(コード255)io.c(601)[送信者= 3.0.7] 

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

これは私の実を動かしています。私もこれをSlicehostカスタムサーバーに設定し、これらの人たちよりも問題が少なくなりました。

任意のヒント?おそらくサーバー側ではなく、クライアント側です。

251

これは通常、が誤ってサーバーに複数のSSHキーを提供していることが原因です。あまりにも多くのキーが提供された後、サーバーはキーを拒否します。

詳細な出力を得るためにsshコマンドに-vフラグを追加することで、これを自分で確認できます。サーバーが次のように言って接続を拒否するまで、たくさんの鍵が提示されていることがわかります。 "[user]に対する認証の失敗が多すぎます"。冗長モードがないと、あいまいなメッセージ「ピアによる接続のリセット」しか表示されません。

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

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

Ssh-agentを使用している場合は、識別情報を消去するためにssh-add -Dを実行するのに役立ちます。

Sshホスト設定を使用していない場合は、sshコマンドで正しいキーを明示的に指定する必要があります。

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

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

または

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

私はこれを行うためのより簡単な方法を見つけました(パスワード認証を使用している場合)。

ssh -o PubkeyAuthentication=no [email protected]

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

参考文献

181
Ben West

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

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

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

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

そのようです:

Host foo
hostname foo.example.com
IdentityFile /home/YOU/.ssh/foo
  1. Sshサーバーを少し弱めているので、おそらくこれはうまくいくやり方ではありません。与えられた接続試行でより多くのキーを受け入れるようになるからです。ここで総当たり攻撃のベクトルを考えてください。

  2. 不要なキーがあり、永久に削除される可能性があることを前提にしておくとよいでしょう。

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

25
slm

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

Host *
IdentitiesOnly yes

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

パスワードを持っていて、そのパスワードを使ってログインするだけの場合は、次のようにします。

パスワード認証のみを使用し、公開鍵を使用せず、やや誤解を招く「キーボードインタラクティブ」(パスワードを含むスーパーセット)を使用しないようにするには、コマンドラインからこれを実行できます。

ssh -o PreferredAuthentications=password [email protected]
6
Greg Rundlett

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

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

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

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

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

例えば:

$ ssh -o PubkeyAuthentication=no root@Host
5
Will Verna

@Davidの話を止めて、このIdentitiesOnly yesを.ssh/configに追加するだけで、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

私はこれが古いスレッドであることを知っています、しかし私はちょうど私が同じエラーメッセージに出くわしたことをここに加えたいと思いました、しかしそれはキーを使用していたユーザーよりルートである.sshフォルダの所有者によって引き起こされました。次のコマンドを実行して問題を修正しました。

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

私の場合、問題はディレクトリのアクセス権でした。これは私のためにそれを修正しました:

$ chmod 750 ~;chmod 700 ~/.ssh
1
tbc0

私の場合、それは私がユーザー名 "ubuntu"を使用していたために起こっていました、しかしこの例のユーザー名は "ec2-user"でした

私が "John T"が提案したことをした後、私はこの誤りを得ました:

許可が拒否されました(公開鍵)。

それから私はこの答えで解決策(すなわち、ユーザー名を「ec2-user」に変更すること)を見つけました: https://stackoverflow.com/questions/1454629/aws-ssh-access-permission- denied-publickey-issue

0
Deepak Joy

認証失敗回数が多すぎます

このメッセージは、許可された制限がリモートSSHサーバーに適用されているために、失敗した認証試行が多すぎることによって引き起こされます。これは、SSHエージェントに追加されたIDが多すぎることを潜在的に意味します。

ここにいくつかの提案があります:

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

    関連記事: sshd_configの 'MaxAuthTries'制限との関連は?

  • それでも問題が解決しない場合は、正しい資格情報またはファイルを使用しているかどうかを確認してください。

0
kenorb

私の公開鍵は.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