IP アドレスの変更後に SSH 接続が「アクセスが拒否されました」

IP アドレスの変更後に SSH 接続が「アクセスが拒否されました」

数時間前、Windows PC と Raspberry Pi の IP アドレスを変更しました。それまでは、問題なく SSH 経由で Pi に接続できました。しかし、接続しようとすると、誰かが「何か悪いこと」をしようとしているのでネットワーク管理者に連絡する必要があるというエラー メッセージが表示されます。

そこで、「known-hosts」ファイルのバックアップを作成し、空のファイルを作成しました。Windows ターミナルから SSH 経由で接続すると、次の出力が表示されます。

出力

これが何を意味するのか、また何をすべきか全く分かりません。すでに Pi をフラッシュしましたが、まだ効果がありません。ルーター設定で PC または Pi のネットワーク設定、あるいはその両方をリセットしても、エラー メッセージは同じままです。

答え1

メッセージ

誰かが「何か悪いこと」をしようとしている

サーバーの IP を変更した結果です。

これは通常、クライアント側のユーザーがknown_hostsサーバーに関する情報を持っているが、保存されている情報の一部がサーバーを識別する現在の接続パラメータ (つまり、同じホスト キーによる別の IP、またはその逆) と異なる場合に表示されます。

グレー表示されているホスト名はホスト名ではなく、IP アドレスだと思います。サーバーの IP を変更すると、このメッセージが表示されました。ホスト名を使用すると、この問題は回避できます。
(IP またはホスト名を使用しているかどうかを判断することは重要なので、プライバシーのために情報を削除するのではなく、置き換えることをお勧めします)

元のknown_hostsファイルを削除することで、このエラーはなくなり、新しいホスト キーを に追加するよう求める「最初の連絡先」メッセージに置き換えられるはずですknown_hosts

=> これは現在のログインの問題の一部ではありません。


ログインの問題

デバッグ ログには次の内容が記録されています。

  • OpenSSH_for_Windows_8.1p1 を使用する Windows クライアントです
  • 許可される認証方法はpublickey、およびpassword
  • クライアントには、「公開鍵認証」(試行されているもの) を介してログインするために使用できる ID がいくつか保存されています
    が、サーバーのアカウントには、使用可能な ID の少なくとも 1 つへのペンダントがないため/root/.ssh/authorized_keys、5 つの要求はすべて失敗します。
    => この認証方法を使用したことがないか、Pi サーバーを再フラッシュすることによって既存の を削除したため/root/.ssh/authorized_keys、この要求方法を使用する可能性がなくなりました。
  • 公開鍵認証が失敗すると、SSHは「パスワード認証」、しかしエラーが発生します:
    read_passphrase: can't open /dev/tty: No such file or directory
    => 明らかに「Windows 用 OpenSSH」ログイン ダイアログを出力する場所がわかっておらず、許可された 3 回の試行後に最終的にログインが失敗します。

サブサミングあなたの質問の現在の情報については、私はかなり確信しています:

致命的な変更が行われる前に、公開鍵認証
理由:クライアント側で関連する設定を変更しなかったので、パスワード認証失敗した場合、この問題は致命的な変更を行う前からすでに存在していたはずです。しかし、問題に気付いていなかったため、他の可能な認証が使用されていたはずです。

/root/.ssh/authorized_keysサーバーでオリジナルが失われたため、サーバーはアクセスを承認できません。公開鍵認証すべてのログイン試行が失敗します。

ソリューション

  1. パスワード認証処理を修復するWindows 用 OpenSSH.
    SSH 接続を開始する方法についての情報がないため、適切な回答はできません。
    おそらく、接続に GUI ツールを使用しているのでしょう。その場合は、ターミナル ウィンドウを開いて、コマンド ラインでセッションを開始するだけで十分でしょう。
    => この特定の問題を解決するには、より詳細な新しい質問を作成する必要があります。

または

  1. root/.ssh/authorized_keysサーバーで を復元または再作成します。
    にキーを追加するにはauthorized_keys:

    1. Windows クライアントに存在する (または新しく作成された) キー ペアの公開キーのみをC:\Users\???\.ssh\サーバーにコピーします。
    2. サーバーで、ユーザーの公開鍵を追加しますauthorized_keys:
      cat <public_key_file> >> ~/.ssh/authorized_keys
    3. ログインをテストする

バリエーション 2: サーバーのローカル コンソールに物理的にアクセスするのが難しい場合は、Live Linux をダウンロードして USB スティックにインストールし、パスワード認証を介してサーバーに接続して公開キーを再適用することをお勧めします。


ご注意ください:ラムハウンドすでに述べたように、ユーザーの使用リモート接続に を使用するのは得策ではありません。通常のユーザーを使用して、sudoルート権限を取得する方がよいでしょう。

答え2

問題を見つけました。驚くことではありませんが、それは私がやったことでした。

「@」記号だらけのエラーメッセージは、誰かが「何か悪いこと」をしようとしていることを明らかに示しており、「known_hosts」ファイルの内容も削除しています。しかし、その後、私は「root」でログインしようとしてミスを犯しました。どうやら、これは実際には無効になっているようです。また、最初のブート手順の後は、小文字のユーザー名ではログインできないことに気付きました。

ユーザー「test」、パスワード「test」でログインしても機能しませんでしたが、ユーザー「Test」、パスワード「test」でログインすると機能しました。

それで何か新しいことを学んだと思います。

関連情報