ssh "警告: リモート ホストの識別が変更されました!"

ssh "警告: リモート ホストの識別が変更されました!"

私は数年前からレンタルしているリモートサーバーにログインするのにsshを使っています。先週、アカウントとサーバーをアップグレードしたというメッセージが届きました。今ログインしようとすると、sshからこのメッセージが表示されます。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@       WARNING: POSSIBLE DNS SPOOFING DETECTED!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The RSA host key for mydomain.com has changed,
and the key for the corresponding IP address X.X.X.X
is unknown. This could either mean that
DNS SPOOFING is happening or the IP address for the host
and its host key have changed at the same time.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
XXxXXXXXXX
Please contact your system administrator.
Add correct host key in /home/myaccount/.ssh/known_hosts to get rid of this message.
Offending key in /home/myaccount/.ssh/known_hosts:7
RSA host key for mydomain.com has changed and you have requested strict checking.
Host key verification failed.

今のところ、これはホストがサーバーをアップグレードしたことが原因だと思います。そのため、このサイトを再び信頼したいのですが、その方法がわかりません。

known_hosts を調べましたが、公開鍵しかありませんでした。しかし、どれがこの特定のサーバーの古いバージョンからのものかはわかりません。また、ホストの正しい鍵を取得する方法もわかりません。前回接続したとき、ssh は私に確認して自動的に保存したと思います。今は厳密なチェックを要求したと表示されていますが、いつこれを実行したのか、どこでリセットするのかはわかりません。

答え1

この線:

Offending key in /home/myaccount/.ssh/known_hosts:7

古いキーが known_hosts ファイルの 7 行目にあることを示します。お気に入りのエディターを使用して 7 行目を削除します。これで消えるはずです。

エントリを削除するには、ssh-keygen -R を使用することもできます。

# ssh-keygen -R hostname -f ~/.ssh/known_hosts

ちなみに、これらは公開鍵ではなく、ホストのハッシュ表現です。

既知のホスト ファイルを一覧表示するには、次のようにします。

$ ssh-keygen -lv -f ~/.ssh/known_hosts

次に、キーと ASCII アート表現が表示されます。

2048 0f:3b:8a:02:75:f1:68:0f:32:8a:7a:0f:ef:69:f8:a0 |1|aa3F96t0nzhqLpt+lJx4msNAGQI=|740B4+NTrQhAx/DWXHf6QLrBpz8= (RSA)
+--[ RSA 2048]----+
|                 |
|  .              |
|   =             |
|o * .            |
|o= o    S        |
|+   .    +       |
|..o.    o .      |
|..++.o . .       |
|E. *B .          |
+-----------------+

理論的には、これを印刷して安全な場所に保管します。何か疑わしいことが起こったときに、参照用にコピーが手元にあります。

答え2

尊敬する serverfaulties 仲間のアドバイスに従って known_hosts ファイルからその行を削除する前に、相手側のカスタマー サービスに連絡して、このキー変更の原因となるような操作を実際に行ったかどうかを確認する必要があることを付け加えておきます。

答え3

/home/myaccount/.ssh/known_hosts ファイルを編集し、古いサーバーの IP アドレスまたはホスト名に一致するエントリを削除する必要があります。その後、通常どおりサーバーに ssh すると、新しいキーが表示され、それを追加するかどうかを尋ねられます。単に「はい」と答えるだけで完了です。:) 何かが変更されない限り、再度尋ねられることはありません。

お役に立てれば幸いです。

編集: known_hostsエントリはおそらく次のようになります

[ホスト名または IP アドレス] [キータイプ、通常は ssh-rsa] [キーはここに、つまり ASDFJAKj3klje35u9086095468kjflADf...]

関連情報