*ユーザー名*の認証エラーが多すぎます


256

sshアクセスが有効なhostgatorアカウントがあります。このコマンドを使用して、生成された.pubキーファイルをアップロードしようとした場合:

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

私は取得し続けます:

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

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

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

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


私の場合、キーの生成に誤りがありました。キーを生成しましたが、ソースアドレスについて言及するのを忘れ、キーの最後にユーザー名を使用しました。
記者

回答:


416

これは通常、サーバーに複数のsshキー誤って提供したことが原因です。提供されたキーが多すぎると、サーバーはキーを拒否します。

これを確認-vするには、sshコマンドにフラグを追加して詳細な出力を取得します。サーバーが接続を拒否するまで、「[user]の認証エラーが多すぎますと言って、一連のキーが提供されることがわかります。詳細モードを使用しないと、あいまいなメッセージ"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ホスト設定を使用していない場合は、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/

5
この行をどこに置くかは明確ではありません。ログインしようとしているサーバーでは、.ssh / configには他のサーバーの情報しかありません。これは、私がsshをしようとしているコンピューターの.ssh / configファイルに入れる必要があるということですか?もしそうなら、あなたの答えは「一度ログインし直したら...」
David LeBauer

2
次のように、オプションを二重引用符でssh -i some_id_rsa -o "IdentitiesOnly yes" them@there:/path/
囲む必要があります。– knb

1
PAGENT(Putty Agent)を実行しているWindowsユーザーは、必要なキーのみをロードするようにしてください。すべての秘密鍵を誤ってロードした後、この問題に遭遇しました。
クリスラスコ

2
問題は残っています。ホストのルールに明示的な設定がある場合でも、なぜssh「複数のキーを提供する」(の下にあるもの~/.ssh)を行うのかIdentityFile /path/to/private_key_file。この明示的に指定されたキーは(少なくとも)最初に提供されるべきではありませんか?これは、opensshクライアントのバグ/誤特色ではありませんか?
アリエル

2
しかし、IdentityFileオプションで指定されたキーを使用するべきではありませんか?たとえば、IdentitiesOnlyオプションがない場合、をしようとするとgithubキーを使用しようとしssh gitlab.comます。意味がない。
ユリアンオノフレイ

188

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

ssh -o PubkeyAuthentication=no username@hostname.com

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

参照


3
+1、もっと多くのことができたらいいのに。Raspberry Piは、公開キーなしでsshを使用する唯一のデバイスです。なっていた:「パイのためにあまりにも多くの認証に失敗」
blak3r

1
そして、それに使用するrsyncrsync -av -e 'ssh -o PubkeyAuthentication=no' 'user@host.com:~/remote_file' 'local_file'
チロSantilli新疆改造中心法轮功六四事件

1
エイリアスを作成して、パスワード認証をさらに高速にすることもできます。エイリアスsshp = 'ssh -o PubkeyAuthentication = no'
dhempler

26

私もこのエラーを受け取っていましたが、サーバーが最大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を設定するアプローチは、おそらくこの問題に対処する好ましい方法です!


あなたの最後の行では、/home/YOU/.ssh/foo identifyfile持っているが、それはIdentityFileに(Fないで)でなければなりません
ニン

7

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

Host *
IdentitiesOnly yes

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


6

次の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

これはまさに私に起こっていたことでした!説明してくれてありがとう;)
エルニンジャトレパドール

6

パスワードがあり、単にパスワードを使用してログインする場合は、次のようにします。

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

ssh -o PreferredAuthentications=password user@example.com

3

@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が再度有効になります。


2

私はこれが古いスレッドであることを知っていますが、同じエラーメッセージに遭遇したことをここに追加したかったのですが、それはキーを使用しているユーザーではなく、ルートである.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

注意せずにこれを使用する場合は注意が必要です。SSHキーのアクセス許可は通常、一部のキー、特にAWSでは400に制限されています。上記の設定を試みると、キーが受け入れられなくなり、AWSアカウントからロックアウトされる可能性があります。
マイケルライアンソイロー

1

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

$ chmod 750 ~;chmod 700 ~/.ssh

0

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

「John T」が提案したことを実行した後、次のエラーが表示されました。

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

次に、この答えで解決策を見つけました(つまり、ユーザー名を「ec2-user」に変更する):https ://stackoverflow.com/questions/1454629/aws-ssh-access-permission-denied-publickey-issue


0

私は自分の公開鍵を持ってい.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

認証の失敗が多すぎる

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

以下にいくつかの提案を示します。

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

    関連記事:'MaxAuthTries'制限の接続とは何sshd_configですか?

  • この方法で解決できない場合は、正しい資格情報またはファイルを使用しているかどうかを確認してください。


-1

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

最初に、ユーザーがリストされていることを確認します。

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