Raspberry Piを開発環境として利用していると、VSCodeのRemote-SSHでリモート接続できるのは非常に便利です。
しかし、環境を再セットアップしたり、OSを入れ直した際に突然エラーが出て接続できなくなることがあります。
今回は実際にRaspberry Pi 5で遭遇したトラブルと、その解決方法をまとめます。
目次
発生したエラー
Raspberry Pi 5にVSCodeのRemote-SSH拡張を使って接続しようとしたところ、以下のようなエラーが発生しました。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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 a host key has just been changed.
The fingerprint for the ED25519 key sent by the remote host is
SHA256:xxx.
Please contact your system administrator.
Add correct host key in C:\Users\xxx/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in C:\Users\xxx/.ssh/known_hosts:4
Host key for 192.168.xx.xx has changed and you have requested strict checking.
Host key verification failed.
プロセスが、存在しないパイプに書き込もうとしました。
原因
このエラーは、SSHのホスト鍵が以前記録していたものと異なっているときに出ます。具体的には:
- Raspberry Pi OSを再インストールした
- SDカードを差し替えた
- SSH鍵が再生成された
- あるいは同じIPアドレスを別の機器が使用している
といった場合に発生します。セキュリティ上の警告なので、必ず「本当に接続先が自分のRaspberry Piである」ことを確認してください。
対処手順
1. 古いホストキーを削除する
PowerShellで以下を実行します。
ssh-keygen -R 192.168.xx.xx
(ホスト名で接続している場合は raspberrypi.local
を指定)
または、エラーメッセージにある known_hosts
ファイルを直接開き、指定された行を削除します。
- Windowsの場合:
C:\Users\xxx\.ssh\known_hosts
2. 新しいホストキーを登録する
一度手動で接続して新しいキーを受け入れます。
ssh -o StrictHostKeyChecking=accept-new pi@192.168.xx.xx
パスワード入力後、新しい鍵が known_hosts
に登録されます。
3. VSCodeから再接続
VSCodeのコマンドパレットで Remote-SSH: Connect to Host…
を選び、同じホストに接続します。これで正常に接続できるはずです。
追加のチェックポイント
- IPアドレスが他の機器と重複していないか(ARPで確認)
~/.ssh/config
に古い設定が残っていないか- VSCode側に残った古いサーバーデータを削除する
rm -rf ~/.vscode-server
まとめ
- エラーは「以前のSSHホスト鍵と違う」ために起こる。
- 古い
known_hosts
の記録を削除し、新しい鍵を受け入れることで解決。 - 再発防止にはIPアドレスを固定し、公開鍵認証を整備すると安心。
Raspberry Piを再セットアップした際にはよく出るトラブルなので、同じ問題に直面した方はぜひ参考にしてみてください。
コメント