ラズパイでsshしようとしたら「WARNING」という警告が出て接続できないときの対処法

【ラズパイ】sshしようとしたら「WARNING」が出るときの対処法

こんにちは! けい(Twitter)です。

今回は、久しぶりにラズパイを触ろうと思って、sshしようとしたら接続できなかったので、備忘録として対処法を残しておこうと思います。

何が原因なのか

警告文

いつものように下記コマンドでsshしようとしたら、このような警告文が表示されました。

ssh pi@raspberrypi.local

deeplで翻訳した文

警告: DNS スプーフィングを検出しました!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
raspberrypi.local の ECDSA ホスト鍵が変更されました。
であり、対応するIPアドレスfe80::32e9:9b34:5d53:7e50%9の鍵は
が不明です。これは、以下のいずれかの可能性があります。
DNS SPOOFINGが起こっているか、ホストのIPアドレスが
とそのホストキーが同時に変更されました。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
警告: リモートホストの識別が変更されました!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
誰かが何か悪さをしている可能性があります!
今まさに盗聴されているかもしれない(中間者攻撃)!
また、ホスト鍵が変更されただけということもありえます。
リモートホストから送信された ECDSA 鍵のフィンガープリントは次のとおりです。
SHA256:qTGLLRStWaY5R7fuphEOzhVr7v/PbKzTvIuafNqUEAc.
システム管理者にお問い合わせください。
このメッセージが表示されないようにするには、C:³³³³に正しいホスト鍵を追加してください。
Offending ECDSA key in C:⽯⽯Users Filter/.ssh/known_hosts:2
ECDSA host key for raspberrypi.local has changed and you have requested strict checking.
ホスト鍵の検証に失敗しました。

www.DeepL.com/Translator(無料版)で翻訳しました。

原因

この警告は、ラズパイ側に原因があるのではなく、PC側に原因があります

複数台のラズパイを使っている時に起こる問題で、「PC上に保存されているラズパイの情報と違うよ!」という警告です。

この問題が生じる場合を想定してみましょう。

ラズパイを2台持っているとして、それぞれラズパイA、ラズパイBとします。
また、それぞれ同じ初期設定のホスト名「raspberrypi.local」とします。
以前、PCでラズパイAにssh接続しました。その後、同じPCでラズパイBにssh接続する場合、この問題が起こります。

なぜなら、sshにはホストキーが使用されるのですが、
ホスト名とmacアドレスが紐づいて保存されています。
そのため、同じホスト名で違うmacアドレスのラズパイにsshする場合このような警告が出てしまいます。

対処法

対処法としては二つの方法があるので、それぞれ紹介します。

①コマンドでホストキーを削除する方法

次のコマンドをお使いのPCで打ち込んで、以前接続したラズパイのホストキーを削除します。

ssh-keygen -R raspberrypi.local

これで、ホストキーの情報はなくなったので、また普通にsshできるようになります。

②直接ファイルを編集する方法

警告文で出てきた赤線の部分のファイルに、ホストキーの情報が入っています。

ここを直接編集しても同様にホストキーの情報を削除できます。

「known_hosts」というファイルを開くと、「raspberrypi.local」の行があるので、それを削除します。

これで、ホストキーの情報はなくなったので、また普通にsshできるようになります。