「ユーザーrootの認証エラーが多すぎます」から回復する方法


64

puttyターミナルを使用して、ユーザーroot @ hostのSSH接続を確立しようといくつか試みました。その間、間違った資格情報を数回指定し、その後、それらを正しく指定し、資格情報が受け入れられた後、sshセッションが

「サーバーがネットワーク接続を予期せず閉じました」。

このエラーは、putty端末によって報告されます。ローカルコンソールからroot @ localhostをsshしようとすると、正常に動作します。他のホストからotheruser @ hostをsshするときにも正常に動作します。したがって、ネットワーク接続の問題は無罪です。私が考えている唯一のエラーは、「ユーザーrootに対する認証の失敗が多すぎます」ですが、puttyは別のエラーを報告しました。

問題は、このエラー状態から回復して、パテに再度ログインさせる方法です。sshdの再起動は役に立たないようです



1
Too many Authentication Failuresログインする前にエラーが発生した場合は、必ずsshエージェント(Windowsのページェントなど)を無効にしてください。
マーン

回答:


8

sshへのrootログインが許可されていますか?

sshd_configを確認し、ルートログインが許可されていることを確認します。設定を変更した場合、sshdを再起動する必要があります。


120

「ユーザーrootの認証エラーが多すぎる」とは、SSHサーバーのMaxAuthTriesの制限を超えたことを意味します。これは、クライアントが/home/USER/.ssh/に保存されているすべての可能なキーで認証しようとしているために起こります。

この状況は、次の方法で解決できます。

  1. ssh -i / path / to / id_rsa root @ host
  2. /home/USER/.ssh/configでHost / IdentityFileのペアを指定します
    • Host host
    • IdentityFile /home/USER/.ssh/id_rsa
    • Host host2
    • IdentityFile /home/USER/.ssh/id_rsa2
  3. / etc / ssh / sshd_configのSSHサーバーのMaxAuthTries値を増やします(推奨されません)。

9
これは本当に受け入れられた答えであるはずです!
ベンジャミン14

4
受け入れられた答えになるためには、答えは本当に質問で言及されたソフトウェアについてでなければなりません。=)
rakslice

4
制限を超える別の原因は、sshエージェントである可能性があります。ssh -vv試されている2つのキー(ssh-agentが提供)の複数のバージョンを示しました。これは、頻繁にリブートせず、期限切れになったいくつかのキーを交換したことが原因だと思います。明らかに、ssh-agentは古いキーを新しいキーで上書きしません。私はssh-agentを殺し、問題はなくなりました。
マーク

増加することからどのような欠点がありますMaxAuthTriesか?多くの異なるキーを試みることで多くの攻撃が実行されるとは思いません。また、攻撃者がそれを望んでいた場合、制限に達するたびに接続を閉じて新しい接続を開くことができます。とにかく、キーをブルートフォースで成功させることはできません。
カスペルド

@マークありがとうございます!ssh-agentを再起動すると修正されました!
winduptoy

91

次のSSHエラーが表示された場合:

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

これは、.sshディレクトリに5つ以上のDSA / RSA IDファイルが格納されている場合(私のシステムのデフォルト)に発生する可能性があります。この場合-i、コマンドラインでオプションが指定されていない場合、sshクライアントは最初に各ID(秘密鍵)を使用してログインを試行し、次にパスワード認証のプロンプトを表示します。ただし、sshdは、5回の不正なログイン試行後に接続をドロップします(再びデフォルトが異なる場合があります)。

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

例えば:

$ ssh -o PubkeyAuthentication=no root@host

1
どうもありがとうございます!ここでは、SSHでのみアクセスできるUbuntuサーバーを使用しています。盲目的にインターネットのチュートリアルを行った後、「MaxAuthTries 1」を設定していました。
アンドレフィゲイレド

あなたは私の命を救った!キー認証を使用していないため、他の回答は役に立たなかった。これで簡単に解決できました!!
ジョージグリーン

5
これは答え
smac89

パスワード認証を使用してキーを再度コピーしましたが、今では毎回機能します。私の.sshディレクトリには多くのキーがありますが、それは重要な量ではないと思います。
ケンシャープ

これは最も関連性の高い答えであり、実際にはssh-copy-idのデフォルトの動作であるはずです。したがって、サーバーにidをコピーしたい場合、通常はありません。ただし、sshが最初にpubkeyを使用してサーバーに対して認証しようとすると、サーバーはパスワードを入力する前に接続を中止します。
スプリンターフリーク

17

リモートマシンで/ etc / sshd_configを開き、値を変更します

MaxAuthTries 30

これは、複数のキーをインストールした場合、または複数の接続を開いた場合の典型的な問題です。サーバーが各キーを段階的にチェックし、MaxAuthTriesが3に設定されている場合、最初の3回目の試行後に切断されます。典型的なsshセキュリティ。

問題を分析するには、リモートマシンへの接続中に冗長モードを使用することをお勧めします。

ssh -v -p port_number user @ servername

このフォーラムのほとんどの人々のように推測するのは間違っており、時間の無駄です。最初に問題を分析し、情報を収集してから質問してください。

楽しんで。


私の特定の場合、問題は、エージェント転送でログインし、それ自体のSSH IDを使用するスクリプトを実行しようとしたことです。エージェントフォワーディングで実行すると、独自のIDを試す前にIDが多すぎました。そこで、エージェント環境を破棄するようにスクリプトをセットアップしましたが、それでクリアされました。MaxAuthTriesを増やすこともできましたが、この場合は必要ありませんでした。
ショーンレイフシュナイダー

1
ありがとう。 -v私のsshクライアントが複数のキーを使用しようとしていることを示しました(私は今かなりたくさんあります)。私はとエージェントからそれらをきれいにssh-add -D
joeytwiddle

12

これは悪い習慣です。リモートボックスに通常のユーザーを置き、それを使用してsshで接続し、su / sudoを使用してルートアクセスを取得するだけです。


10

私にとって、この問題は、接続先のホスト用に以下のssh_configを作成することで解決しました。

(〜/ .ssh / config)

Host example
HostName example.com
User admin
IdentityFile ~/path/to/ssh_key_rsa
IdentitiesOnly=yes

この問題は、~/.sshフォルダー内に16個程度のsshキーが多すぎるために発生しました。そして、構成にこれらのIdentityFileAND IdentitiesOnlyディレクティブの両方がなければ、私のマシンは明らかにすべてのキーを~/.ssh試し、正しいIdentityFileを試みる前に最大試行回数に達しました。


6

上記のAnonが投稿したように、別のユーザーを使用してsshアクセスsuを取得し、コマンドを使用してアクセスすることをお勧めしますroot

また、サーバー上のファイルで必ず有効にPermitRootLoginしてください/etc/ssh/sshd_config


5

私も同じ問題に直面しました。これは、Pageantを使用しており、多数のキーがロードされている場合、これらのサーバーは公開キーの各オファーを認証試行としてカウントするため、簡単に発生します。

(このアドバイスはここから取られています。)


1
リンクが腐敗し、答えが役に立たなくなるので、ここではリンクのみの回答にはあまり熱心ではありません。どうしてもリンクを維持してください。ただし、1つまたは2つの段落に解決策を要約できる場合は、ここに自分自身の答えがあります。
MadHatter

2
今後の編集をお許しください。今(私は願っています)、あなたが参照するアドバイスはあなたが与えるアドバイスであることを明確にしますが、それでも元のソースを信用します。あなたの答えを改善するために一生懸命努力したことに対して私からの+1!
マッドハッター

Puttyでも「認証エラーが多すぎます」という問題がありました。PageAntから他のすべてのキーを削除した後、最終的に正常にログインしました。
klor

4

次のコマンドを実行して、システムのこの問題を修正しました。

eval $(ssh-agent)
ssh-add  ~/.ssh/keyname

次に、リモートマシンでsshを試します


3

他の箇所で指摘されているように問題が完全に解決されるまでこの問題に一時的に対処するには、ユーザーのPAM集計をリセットして、再試行できるようにします。

pam_tally --reset --user <USERNAME>
pam_tally2 --reset --user <USERNAME>

2

私は同様の問題に噛まれました。しかし、本当の原因はForwardAgent yes、パイプに沿ったマシンの設定ファイルにあったことです。マシンAからマシンB、マシンCに接続していました。

エラーメッセージは、B-> Cからのssh試行で表示されましたが、Aが転送をアクティブにしていることが原因でした。したがって、Cは最初にAからすべてのキーを提供され、その後Bからのみ提供されました。

Aにもう1つキーを追加すると、突然表示されました。


1

Macでこの問題を修正しました:

  1. 「sudo passwd root」でルートパスワードを設定してから
  2. 「nano / etc / ssh_config」を使用してssh構成ファイルを編集および保存し、
  3. RSAAuthenticationをyesではなく「no」に変更します。

0

OK、だから私の場合、これはかなり奇妙だった、ここに行く...

SSHキーを持つ標準のVagrant VMがあり、Puttyを使用してSSHで接続できます。PHPStormでの展開中に取得しようとすると、too many authentication failuresエラーが発生します。それで私はを増やしMaxAuthTriessshd_config、それから私はAuth failedエラーで打たれたAuth cancel

今、私はなぜこれを試みたのかはっきりとは知りませんが、PHPStormの展開ウィンドウのSSHキーパスの最後にドットを追加しました。こんな感じでした:

C:\Users\Deadpool\\.ssh\chimichanga

そして今ではこのようになっています:

C:\Users\Deadpool\\.ssh\chimichanga.

そしてそれは動作します...私の「.ssh」フォルダには、さらにファイルがあります:

chimichanga - copy of "id_rsa" from vagrant machine
chimichanga.ppk
chimichanga.pub

私はそのfcukingドットが何をするのかわかり.ppkませんが、ファイルの使用は機能しないので、魔法のようなものだと思います;)ああ、その「ドットトリック」の後にMaxAuthTriesを取り除くことができました。


0

他の回答は、ルートとして接続するための最良の方法とそのセキュリティへの影響を示していますが、明示的な質問は

このエラー状態から回復し、パテに再度ログインさせる方法は?

あなたが最後に接続したときに言及すると、リモートサーバーは接続を切断しました。

リモートサーバーでfail2ban(*)が実行されており、ログインに成功した後にIPが「投獄された」ことがわかると思います。これをテストするには、もう一度ログインしてみてください。ログインプロンプトも表示されません。

2つの解決策があります。刑務所時間を待つことができます。その時点で物事は単純に通常に戻りますが、刑務所時間は何でもかまいません。または、ログインする別のコンピューターを見つけて実行し、IPを「脱獄」できます。この場合、「異なる」はリモートサーバーの観点からであるため、同じファイアウォールの背後にある別のコンピューターもおそらく動作しません。

(*)fail2banは、定期的にさまざまなログファイルをチェックし、ファイアウォールルールを調整して、クライアントから潜在的に悪意のある動作を検出したときにサーバーを「消失」させることができる非常に便利なデーモンです。debianでは、特定のIPからの複数の失敗したsshログインを検出するように構成されており、3(私が思うに)後、そのIPからすべてのパケットをドロップします。これらのスクリプト化されたブルートフォース攻撃を阻止するために見事に機能します。


0

別の答えで述べた@suffererのように、いくつかのLinuxディストリビューションは、たとえば、SSHなどの外部の目に見えるサービスのブルートフォース攻撃から保護するためのモニターを含めますDenyHostsfail2ban。これらのモニターは、ログファイルをチェックして失敗した試行を探し、失敗が多すぎるIPアドレスをブロックするフィルターを追加します(数はsshd構成から独立して設定可能です)。

ディストリビューションにが含まれfail2banており、iptablesファイアウォールにルールを追加するサービスを保護している場合、次のコマンドを使用して、監視されているサービスまたは「jail」を確認できます。

sudo fail2ban-client status

SSHサービスの刑務所はsshdであるため、使用できるIPが禁止されているかどうかを確認するには、次のようにします。

sudo fail2ban-client status sshd

いくつかのIP abcdの禁止を解除するには:

sudo fail2ban-client set sshd unbanip a.b.c.d

がある場合DenyHosts、禁止リストは/etc/hosts.denyファイルにあります。このファイルをルートとして直接編集できます。一部のIP abcdに永続的なアクセスを許可sshd:a.b.c.dするには、/ etc / hosts.allowファイルに行を追加します。

いつものように、manコマンドはあなたの友人です:

man fail2ban
man hosts.deny

他の同様のユーティリティが存在するはずですが、私はこれらを使用しただけです。

sshd構成で許可される再試行回数を増やしても、禁止されたIPは解放されず、同じ接続でより多くの失敗が許可されることに注意してください。許可されている数を超えた場合、ユーザー/攻撃者は単純に再接続して、さらにn回試行します。

他のサービスには禁止リストが統合されていました(VNCサーバーの再起動に関するRajnesh Thakurの回答に示されているように)。


-2

Ubuntu 16.04サーバーで2つの簡単な手順でこの問題を解決しました-

最初にvncサーバーを停止するか、プロセスを強制終了します-

vncserver -kill :1

その後、もう一度起動します-

vncserver

その後、リモートデスクトップクライアントから接続します-

192.0.2.99:5901

完了!!


これは質問とは関係ありません。
ケンシャープ

-3

以下の解決手順に従ってください

  1. / etc / ssh / sshd_configをバックアップします
  2. sshd_configのMaxAuthTriesの値を増やす
  3. stopsrc -s sshd; startsrc -s sshd

上記の変更後に再度確認してください


-4

「SServerは切断されたメッセージタイプ2(プロトコルエラー)を送信しました:ユーザーの認証エラーが多すぎます」というメッセージが表示されるという同じ問題がありました

すべてのssh(.ppkキー)を削除し、AD統合サーバーにログインすることでこの問題を解決しました。


この答えは役に立たないので、.ppkファイルを削除することをお勧めします。.ppkファイルを削除する必要があると思われる場合(そして、あなたが望んでいる正当な理由が思いつかない場合)、他の名前に変更し、削除しないでください。おそらく必要なキーが含まれています。
法律
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.