web-dev-qa-db-ja.com

SSHで厳密なRSAキーチェックを削除する方法と、ここでの問題は何ですか?

Linuxサーバーを使用していますが、接続するたびに、SSHホストキーを変更したメッセージが表示されます。

$ ssh root @ Host1 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@ @警告:リモートホストの識別が変更されました! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@ IT IS誰かその可能性があるIS何か厄介なことをしている!誰かがあなたに今盗聴されている可能性がある(man-in -the-middle attack)!RSAホストキーが変更された可能性もあります。リモートホストから送信されたRSAキーのフィンガープリントは、93:a2:1b:1c:5f:3e:68:47:bfです。 :79:56:52:f0:ec:03:6b。システム管理者に連絡してください。このメッセージを削除するには、正しいホストキーを/home/emerson/.ssh/known_hostsに追加してください。問題のあるキーは/ home/emerson /にあります.ssh/known_hosts:377

Host1のRSAホストキーが変更され、厳密なチェックを要求しました。ホストキーの検証に失敗しました。

それは私をログインさせた非常に数秒間保持し、それから接続を閉じます。

Host1:〜/ .ssh#リモートホストから読み取りますhost1:接続がピアによってリセットされましたHost1への接続が閉じられました。

誰かが何が起こっているのか、この問題を解決するために私が何ができるのか知っていますか?

45
setatakahashi

一部の人が推奨するように、known_hostsファイル全体を削除しないでください。これにより、警告のポイントが完全に無効になります。中間者攻撃が発生した可能性があることを警告するセキュリティ機能です。

何かが変更されたと考える理由を特定することをお勧めします。おそらく、SSHのアップグレードにより、セキュリティホールの可能性があるために暗号化キーが変更されました。その後、known_hostsファイルからその特定の行を削除できます。

sed -i 377d ~/.ssh/known_hosts

これはd警告のコロンの後に示されている377行目を示しています。

/home/emerson/.ssh/known_hosts:377

または、次のようにして関連するキーを削除できます

ssh-keygen -R 127.0.0.1 (obviously replace with the server's IP)

特定のキーを削除する前に、ファイル全体を削除しないでください。また、これが実際に接続するマシンであることを確認してください。

71
Adam Gibbins

ここでの回答のいくつかは、OPの質問で推奨される行動方針に対応しているとは思いますが、質問への完全な回答ではありません。

質問には、「SSHで厳密なRSAキーチェックを削除する方法と、ここでの問題は何ですか」と記載されています。

ここでの問題は、他の人からのアドバイスによると、おそらくサーバーの再インストール(最も一般的なシナリオ)によるホストの変更です。そして、推奨される解決策は、インラインsedを使用して、問題のあるキーを.ssh/authorized_keysファイルから削除することです。

しかし、「SSHでの厳密なRSAキーチェックを削除する方法」という質問の特定の部分に対処する回答はありませんでした。

StrictHostKeyチェックは、通常~/.ssh/configに保存されているssh設定ファイルで削除できます。

Hostブロックの例を以下に示します。

Host 101
  HostName yourip|hostname
  User youruserid
  IdentityFile /path/to/keyfile
  Port 22
  StrictHostKeyChecking no

具体的に追加された行は、最後の行StrictHostKeyChecking noで、これはまさにそれを実行します。特定のシナリオによっては、専用サーバーで複数の仮想化コンテナーを少数のIPで実行したり、同じIPで別のインスタンスを停止および開始したりするなど、これが役立つ場合があります。

27
Joel G Mathew

StrictHostKeyCheckingを削除するもう1つの方法は、単一のサーバーに対してのみ行う必要がある場合です。

ssh <server> -o StrictHostKeyChecking=no
11
Greg Dougherty

まず、これはあなたのマシンですか?意図的にホストキーを変更しましたか?そうでない場合、何かがそのデータを変更したことを非常に心配します。

次に、sshデバッグをオンにします。

ssh -vvv user@Host

手がかりを得るために接続しようとしているサーバーの/ var/log/secureおよび/ var/log/messagesを調べてみてください。sshdは適切なエラーメッセージを提供します。

第三に、このマシンはインターネットに接続されていますか?本当にrootログインを許可するべきですか?

5
Dave Cheney

「大まかに定義すると、たとえば再インストール/マルチブートから、以前に接続したことのあるIPアドレスを持つまったく別のコンピューターまですべてが該当する可能性があります]が変更されたようにsshクライアントに表示され、エラー。

厳密なチェックをオフにする必要はなく、保存されたキーを完全に削除することも賢明ではありません。

特定のホスト名またはIPアドレスについて、known_hostsに2つの異なるキーがリストされている可能性があります。現在known_hostsに保存されている「古い」キーが必要かどうかに応じて、2つの選択肢を提供します

OPのknown_hostsのl377で、参照している特定のキーを削除するか、両方を保持します。

両方を保持する最も簡単な方法は、known_hostsのキーの削除を回避することです。

  1. 既知のホストを編集して、既知のホストで参照されている「古い」エントリの先頭に#を一時的に追加します[@ l377]
  2. [sshをホストに]接続し、プロンプトに同意して新しいキーを「自動的に」追加します
  3. 次に、known_hostsを再編集して#を削除します

"known_hostsに正しいホストキーを追加" /ホスト名ごとに複数のsshホストキーを追加しますか?

3
Mark

これは、何かが変更されたために発生しています(新しいNIC、新しいIP、サーバーソフトウェアの変更など)。セキュリティの焦点は、 SSHホストキー保護 に関する素晴らしい記事です。

$HOME/.ssh/known_hostsファイルを編集してサーバーからキーを削除し(SFTPなどを使用)、次の接続時に新しいキーを受け入れます。

StrictHostKeyChecking設定が原因で接続が切断されている可能性があります。同様の問題については this thread を参照してください。

3
user1797