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への接続が閉じられました。
誰かが何が起こっているのか、この問題を解決するために私が何ができるのか知っていますか?
一部の人が推奨するように、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)
特定のキーを削除する前に、ファイル全体を削除しないでください。また、これが実際に接続するマシンであることを確認してください。
ここでの回答のいくつかは、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で別のインスタンスを停止および開始したりするなど、これが役立つ場合があります。
StrictHostKeyCheckingを削除するもう1つの方法は、単一のサーバーに対してのみ行う必要がある場合です。
ssh <server> -o StrictHostKeyChecking=no
まず、これはあなたのマシンですか?意図的にホストキーを変更しましたか?そうでない場合、何かがそのデータを変更したことを非常に心配します。
次に、sshデバッグをオンにします。
ssh -vvv user@Host
手がかりを得るために接続しようとしているサーバーの/ var/log/secureおよび/ var/log/messagesを調べてみてください。sshdは適切なエラーメッセージを提供します。
第三に、このマシンはインターネットに接続されていますか?本当にrootログインを許可するべきですか?
「大まかに定義すると、たとえば再インストール/マルチブートから、以前に接続したことのあるIPアドレスを持つまったく別のコンピューターまですべてが該当する可能性があります]が変更されたようにsshクライアントに表示され、エラー。
厳密なチェックをオフにする必要はなく、保存されたキーを完全に削除することも賢明ではありません。
特定のホスト名またはIPアドレスについて、known_hostsに2つの異なるキーがリストされている可能性があります。現在known_hostsに保存されている「古い」キーが必要かどうかに応じて、2つの選択肢を提供します
OPのknown_hostsのl377で、参照している特定のキーを削除するか、両方を保持します。
両方を保持する最も簡単な方法は、known_hostsのキーの削除を回避することです。
これは、何かが変更されたために発生しています(新しいNIC、新しいIP、サーバーソフトウェアの変更など)。セキュリティの焦点は、 SSHホストキー保護 に関する素晴らしい記事です。
$HOME/.ssh/known_hosts
ファイルを編集してサーバーからキーを削除し(SFTPなどを使用)、次の接続時に新しいキーを受け入れます。
StrictHostKeyChecking設定が原因で接続が切断されている可能性があります。同様の問題については this thread を参照してください。