この記事では、VS Code の Remote-SSH 拡張機能を使って LAN経由で Raspberry Pi に接続する際に発生した代表的なエラーを解消する手順を、はじめての方にも分かりやすく解説します。
目次
前提条件
- VS Code Remote-SSH 拡張機能がインストール済み
- Raspberry Pi 側で SSH サーバーが有効(
sudo systemctl enable ssh && sudo systemctl start ssh
) - Pi の IP アドレスが分かっている(例:
192.0.2.1
※ダミーIP) - ローカル PC に SSH キーペア(
~/.ssh/id_rsa
/~/.ssh/id_rsa.pub
)を準備済み - 公開鍵認証を使う場合、公開鍵が Pi の
~/.ssh/authorized_keys
に登録済み
1. 古いホスト鍵の削除
過去に接続した際のホスト鍵が変わると、SSH は嫌悪して接続を拒否します。まずは古い鍵情報をクリアしましょう。
# PowerShell/CMD で実行
ssh-keygen -R 192.0.2.1
known_hosts
が空になるか、対象行が削除されたことを確認します。- 手動で
C:\Users\shinf\.ssh\known_hosts
を開いても、中身が空になるのは正常です。
2. 新しいホスト鍵の登録
次に、改めてホスト鍵を登録します。ターミナルから普通に SSH 接続し、プロンプトで yes
を入力してください。
ssh pi@192.0.2.1
- 初回接続時に以下のような警告が表示されたら:
The authenticity of host '192.0.2.1 (192.0.2.1)' can't be established. ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxx. Are you sure you want to continue connecting (yes/no)?
yes
と入力して Enter- パスワードまたはパスフレーズを入力
- Raspberry Pi のシェルにログインできれば成功です
これにより、known_hosts
に新しい鍵が追記されます。
3. VS Code から再接続
SSH クライアント側の問題が解消したら、VS Code 側でも接続をやり直します。
- VS Code を完全に再起動
- 左下の緑色アイコン(><)→ Remote-SSH: Connect to Host… を選択
raspberrypi-ros2
(または設定したホスト名)を選択- OS選択で Linux を選ぶ
- 自動的にサーバーがインストール・起動され、リモートウィンドウが開きます
4. トラブルが続く場合のチェックリスト
remote.SSH.configFile
が正しく設定されているか(VS Code 設定)config
ファイルの文字コードは UTF-8(BOMなし)、改行は LF ️- タブ文字ではなく半角スペースでインデント
HostName
、User
、Port
行に余計な文字(コメント直後の#
など)がないか確認
まとめ
- 古い鍵の削除 →
ssh-keygen -R
で known_hosts をクリア - 新鍵の登録 →
ssh pi@<ダミーIP>
でyes
→ キー登録 - VS Code 接続 → 再起動&Remote-SSH
- 設定確認 → configFile、文字コード、インデント
この流れでほとんどの接続トラブルは解決できます。ぜひ参考にしてください!
コメント