【ROS 2】SSH接続で[WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!]と表示されてつながらない
SSH接続で[WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!]と表示されてつながらない理由と、その対処法を解説します。
(1) 警告メッセージの内容
Windows 11のターミナル(Windows Terminal)からRaspberry Pi 5にSSH接続しようとしたとき、警告メッセージ[WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!]が表示され、接続できないことがあります。目立つように[@]で囲まれたこの警告メッセージが目に飛び込んでくると驚きますよね。
この警告メッセージは、SSHが接続先の身元を確認するための仕組みによるものです。以前接続したときと違うフィンガープリント(後述)が検出されたので「接続先が偽物かもしれない。騙されないで!(意訳)」と警告して、接続を切断しています。
(2) 警告メッセージが表示される理由と、その対処法
なぜ、この警告メッセージが表示されるのか
SSHの通信経路は、公開鍵暗号方式と共通鍵暗号方式の二つを組み合わせたハイブリット暗号方式によって暗号化されます。このうち、公開鍵暗号方式では、サーバー側で公開鍵と秘密鍵のペアが生成されます。公開鍵は誰でも使うことができ、公開鍵で暗号化された情報はサーバー側の秘密鍵によって複合(複合化)されます。前述のフィンガープリントは、この公開鍵から生成されるハッシュ値のことです。ここで、初めてSSH接続したときに表示された警告メッセージを思い出してください。
【ROS 2】Raspberry Pi 5の起動[ヘッドレス]とWindows 11のターミナルを使ったSSH接続
Raspberry Pi 5の起動[ヘッドレス]からSSH接続までを解説します。SSH接続には、Windows 11のターミナルを使用します。
この警告メッセージの中で、公開鍵から生成されたフィンガープリントが提示されています。ここで[yes]を応答すると、ローカルの[known_hosts]というファイルに身元の確認済みホストとして公開鍵が追記されます。保存場所は、Windowsの場合[C:\Users\ユーザー名\.ssh\known_hosts]となります。
2回目以降の接続では[known_hosts]に記述された公開鍵から生成したフィンガープリントと、サーバーから提示されたフィンガープリントを比較して、一致すれば既知のホスト、一致しなければ「接続先が偽物かもしれない。騙されないで!(意訳)」という警告メッセージが表示されます。
どのように対処すればいいのか
まず、この警告メッセージが表示された原因を確認します。OSの再インストールでもフィンガープリントが変わります。問題ないことが確認できたら、新しい公開鍵を受け入れるために[known_hosts]から既知の公開鍵を削除します。Windows 11のターミナルでコマンド[ssh-keygen -R 192.168.1.36]を入力します。[192.168.1.36]は接続先(Raspberry Pi 5)のIPアドレスです。
このあと接続を試みると、初回の接続時と同様に新しいフィンガープリントが提示されるので、問題なければ[yes]を応答します。この操作によって、新たな公開鍵が[known_hosts]に追記されます。
以上が、SSH接続で[WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!]と表示されてつながらない理由と、その対処法となります。自分がサーバーの管理者であるときはその原因がはっきりと分かりますが、他人が管理しているサーバーへ接続する場合は安易にこの対処法をとるのではなく、安全のためにしっかりとした原因追及を行いましょう。この警告メッセージは安全のためのサインです。焦らず、冷静に。
おすすめ
【改訂第2版】ROS 2とPythonで作って学ぶAIロボット入門
- 出版社
- 講談社
- 著者
- 出村公成・萩原良信・升谷保博・タンジェフリートゥチュアン
- 発売日
- 2025/2/14
Raspberry Pi 5プログラミング教育ロボット
Raspberry Pi 5ベースのROS 2(Humble)に対応したロボットカーです。4つの独立した駆動輪(エンコーダー付き金属製モーター)による走行、LiDARによるマッピング(SLAM)・2軸のカメラによるAI画像認識(OpenCV)などが行えます。













