ウェブサイト検索

「SSH 認証失敗が多すぎます」というエラーの修正方法


時々、SSHを介してリモートシステムに接続しようとすると、「x.x.x.xのポート22から切断されました:2: 認証の失敗が多すぎます」というエラーが表示されることがあります。この短い記事では、このエラーを簡単な手順で修正する方法を説明します。

関連記事: LinuxでSSH接続を高速化する4つの方法

以下は、sshクライアントを使用しているときに遭遇したエラーのスクリーンショットです。

私は、これが私のマシンに多くのSSHアイデンティティキーが存在することから生じていることを発見しました。SSHクライアントを実行するたびに、ssh-agentによって知られているすべてのSSHキーと他のすべてのキーを試みて、リモートサーバー(上のスクリーンショットに示されているvps2)に接続しようとします。これはSSHのデフォルトの動作です。

リモートサーバー上のsshサーバー(sshd)が特定のアイデンティティキーを期待しているため、サーバーは接続を拒否し、sshクライアントは上記のエラーで中止します。

このエラーを修正するには、IdentitiesOnlyにyesという値を追加する必要があります。これは、sshにコマンドラインで指定された認証アイデンティティファイルまたはssh_configファイルに設定されたもののみを使用するよう指示します。たとえssh-agentが追加のアイデンティティを提供していてもです。

例えば:

$ ssh -o IdentitiesOnly=yes vps2

あるいは、すべてのSSHクライアント接続でこれを機能させたい場合は、~/.ssh/configファイルで設定できます。

$ vim ~/.ssh/config

スナップショットに示されているように、Host *セクションの下に、以下の設定をファイルに追加してください。

Host * 
       	IdentitiesOnly=yes

ファイルの変更を保存して終了してください。これで、コマンドラインにオプション -o IdentitiesOnly=yes を指定せずに ssh を実行できるようになるはずです。

$ ssh vps2

詳細については、ssh-configマニュアルページを参照してください。

$ man ssh-config

次のSSH関連の記事が役に立つかもしれません。

    1. LinuxでSSHトンネリングまたはポートフォワーディングを作成する方法
    2. LinuxでデフォルトのSSHポートをカスタムポートに変更する方法
    3. Linuxで全ての失敗したSSHログイン試行を見つける方法
    4. LinuxでSSHルートログインを無効にする方法
    5. SSHセッションを閉じた後もリモートSSHセッションを維持するための5つの方法

この記事では、「Received disconnect from x.x.x.x port 22:2: Too many authentication failures」というSSHの問題を簡単に修正する方法を紹介しました。ご質問がある場合は、下のコメントフォームを使用してお問い合わせください。

関連記事: