こんにちは! けい(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できるようになります。