GNU/Linux >> Linux の 問題 >  >> Linux

Linux sysadminの基本:known_hosts障害のトラブルシューティング

SSHは使いやすく、一般的に問題はありません。しかし、ホームディレクトリにはこの小さなファイルがあり、このユビキタスなプロトコルとツールのまれな問題点になる可能性があります。問題のあるエンティティは〜/ .ssh / known_hostsです ファイル。あなたがそれについて知らなかったならば、あなたは今あなた自身を知っているべきです。このファイルは、あなたのキャリアのある時点で登場します。

次のメッセージを見たことがあれば、誰かがあなたをハッキングしようとしていることに気が狂うか、DHCPやその他の異常があなたに汚い汚い行為をしたことに気付くことができます:

  $ ssh 192.168.1.84 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@警告:リモートホストの識別が変更されました! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@誰かが何か厄介なことをしている可能性があります!誰かが今あなたを盗聴している可能性があります(中間者攻撃)!ホストキーがちょうどされた可能性もありますリモートホストによって送信されたECDSAキーの指紋はSHA256:I02UyJs2vS0ym4jWn5upAWZDqwu5RjMg4aM9hPq8G1kです。システム管理者に連絡してください。/Users/khess/.ssh/known_hostsに正しいホストキーを追加して、このメッセージを削除してください。 /khess/.ssh/known_hosts:4ECDSA 192.168.1.84のホストキーが変更され、厳密なチェックを要求しました。ホストキーの検証に失敗しました。 

ここで発生したのは、IPアドレスが192.168.1.84でなくなったシステムに接続しようとしたことです。別のシステムにはそのIPアドレスがあり、SSHはハッキングされている可能性があると不平を言っています。多くの場合、現実はそれほど刺激的ではありません。あなたのknown_hosts ファイルが実際のホストの現実と同期しない場合があります。

複数のことがこのIPアドレスの椅子取りゲームを引き起こす可能性があります。システムの1つが長期間ダウンしていた可能性があり、別のシステムのリースがアップしたときに、次に使用可能なIPアドレスを取得しました。パッチ適用イベントとその後の再起動により、一部のシステムが異なるIPアドレスを取得しました。システムが再インストールされて新しいIDが生成されたか、誰かが賢明になってサーバーシステムに静的IPアドレスを与えた可能性があります。 (すべてのサーバーに静的IPアドレスが必要だと思います。ルーター、スイッチ、アクセスポイント、IoTデバイス、カメラ、会議室システム、さらにはプリンターなどのサポートコンポーネントにも同じことが言えます。エンドユーザーデバイスのみが必要です。ランダムなIPアドレスを取得するという疑わしい特権。この強い意見には理由があります。これについては、後で別の記事で共有します。)

それがどのように起こったかに関係なく、接続したいシステムは新しいIPアドレスを持っています。システムにも認識されているが、フィンガープリントが異なるもの。

前述のknown_hosts fileは、隠しディレクトリ( .ssh )内にある単純なテキストファイルです。 )ホームディレクトリにあります。その内容を表示するには、次のコマンドを入力します。

<前>の $猫の.ssh / known_hosts192.168.1.97 ECDSA-SHA2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBMJWpXf8Ou / XJ1Q5YcIS5Me4GgN1F7AYHbvIPayfGqwd90kvhQygrPCYEqVdw44lEOIZe + DEKP4F6Otdt38yf68 =192.168.1.101 ECDSA-SHA2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJRNTZm8M9IYYN3uJL / yCPv4EJRMDZkkcnt1CY8L6OR84wstYdhqtNqV0v / LQiz / AoRbHKxPTdjXfIOrc1vYDHc =県、192.168.1.69 ecdsa- SHA2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBB53lh2RyFiMfJFKBkLa643lS4GGILG6oVGq33KyBSgaDU2ZHryYak1FU1HcPa6Xb / xYqEUugv9cOXFRwajbrmg =192.168.1.84 ECDSA-SHA2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBMGjMsJPX4bfdEnVy59Uf2VhH1oAt7Zemd5bfSoSGxX69HBcjkekO / LkEZUlhVplBlHFqJBqs2gWYp3zVDCTwr4 =192.168.1.64 ECDSA-SHA2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIkK9WylcZcgjT7gUz9DMLehUBApION1CLiBVc3Pa / YfAbIDUlIWta12zL5B12RmBXgoYvntdW5rcowPiqjL0 / O =

この問題の簡単な解決策は、 known_hostsを削除することです。 ファイルを作成し、接続するホストごとに新しいキーを生成できるようにします。このデモでは、 192.168.1.84を削除します known_hostsからのエントリ ファイルを作成してから、そのアドレスの新しいホストに接続します。これにより、プロセスで何が起こっているかを比較できます。まず、 known_hostsを削除します ssh-keygenのエントリ コマンド:

  $ ssh-keygen -R 192.168.1.84 -f .ssh / known_hostsホスト192.168.1.84が見つかりました:4行目ssh/known_hostsが更新されました。元のコンテンツは.ssh/known_hosts.oldとして保持されます。 

元のエントリは.ssh/ known_hosts.oldに保存されます 将来必要になった場合に備えて。

192.168.1.84を削除した後 known_hostsからのエントリ ファイル、ホスト 192.168.1.84への接続を再試行しました :

  $ ssh 192.168.1.84ホスト「192.168.1.84(192.168.1.84)」の信頼性を確立できません。ECDSAキーのフィンガープリントはSHA256:I02UyJs2vS0ym4jWn5upAWZDqwu5RjMg4aM9hPq8G1kです。接続を続行してもよろしいですか(はい/いいえ)? yes警告:既知のホストのリストに「192.168.1.84」(ECDSA)を恒久的に追加しました。 

追加したキーが、記事の冒頭のエラーにリストされているキーと一致していることがわかります。ホストのキーを確認するには、リモートホストで次のコマンドを発行します。

  $ ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub256 SHA256:I02UyJs2vS0ym4jWn5upAWZDqwu5RjMg4aM9hPq8G1kコメントなし(ECDSA) 

まとめ

静的IPアドレスを使用し、システムが変更されない限り、キャリアのある時点でこの問題が発生します。私は月に数回仮想マシンを作成および破棄するため、これは常に発生します。実際、非常に頻繁に発生するため、今では known_hostsを削除するスクリプトが必要です。 毎月初めにファイルします。

理想的には、 known_hostsからエントリを削除する必要はありません。 ファイル(またはファイル全体)。しかし、必要な場合は、その方法を学んだばかりです。

要点: known_hosts ssh-keygen

[Red Hat Enterprise Linuxを試してみませんか?今すぐ無料でダウンロードしてください。]


Linux
  1. Linuxでの低速WiFiのトラブルシューティング

  2. Linuxファイルパーミッションの基本

  3. Linuxコマンドの基本:printf

  1. Linuxでのハードウェア問題のトラブルシューティング

  2. Linuxラボ:SysAdmin 101

  3. 50 UNIX / Linux システム管理者チュートリアル

  1. Linux sysadminの基本:UIDとGIDを使用したユーザーアカウント管理

  2. Linux sysadminの基本:ユーザーアカウント管理

  3. 私のLinuxシステム管理者サバイバルキット