このサイトには、ATOMというエディタでRaspberry Piのファイルを編集する記事が3本あります。2021年に書いたものです。
先日ひさしぶりに読み返して、少し青くなりました。ATOMは2022年12月に開発が終了しています。あの3本の手順は、もう動きません。
ただ、やりたかったことは、いまも同じなんです。Windowsの画面から、ラズパイの中のファイルを直接ひらいて編集したい。ついでに同じ画面でコマンドも打ちたい。
あのころは、これをやるためにプラグインを2つ入れて、日本語化もして、記事3本ぶんの手順を書きました。いまは、拡張機能を1つ入れるだけです。VS Code の Remote – SSH。それでファイル編集もターミナルも、両方ついてきます。
先に、何が変わったのか
| ATOMでやっていたこと(2021年) | VS Code Remote-SSH(いま) | |
|---|---|---|
| エディタ | ATOM(2022年12月に開発終了) | VS Code |
| ファイル編集 | プラグイン Ftp-Remote-Edit | 拡張機能 Remote – SSH ひとつ |
| ターミナル | プラグイン platformio-ide-terminal | |
| 日本語化 | 別途プラグイン | VS Code本体の日本語パック |
| 記事の本数 | 3本 | この1本 |
減ったのは手間だけではないんです。ATOMのプラグイン方式は「ファイルを転送して編集する」形でした。手元で直して、送り返す。
Remote-SSH は違います。VS Codeの一部が、Raspberry Pi の中に入って動きます。だから、ひらいたターミナルも最初からラズパイ側のものです。ここがいちばん大きい違いだと思います。
検証した環境:Windows 11 / VS Code 1.136.1 / Remote – SSH 0.128.0 / Raspberry Pi 5 Model B / Raspberry Pi OS(Debian 13 Trixie・64bit)。2026年9月11日に実際に接続して確かめた記録です。うまくいかなかったところもそのまま書いています。
準備するもの
用意するのは2つだけです。Windows側にVS Code、ラズパイ側にSSH。順番に見ていきます。
Windows側:VS Code
VS Code本体の入れ方は、この記事では省きます。公式サイトからインストーラーを落として、進めるだけです。インストーラーの言語も自動で日本語になります。
VS Codeがまだの方へ。入れるところから「最初のコードを書いて実行する」までを、Python学習の1回目に書いてあります。この記事の操作に慣れていない方は、先にこちらを見ておくと迷いません。
ラズパイ側:SSH
ラズパイ側は、SSHを使えるようにしておきます。
sudo raspi-config nonint do_ssh 0
画面から操作するなら sudo raspi-config →「Interface Options」→「SSH」です。Raspberry Pi Imager で書き込むときに「SSHを有効化する」にチェックを入れていれば、この作業は要りません。
いま有効かどうかは、こう打てば分かります。
$ systemctl is-active ssh
active
SSH接続そのものの説明は、別記事に書いてあります。VNCの3部作の2回目です。
→ Raspberry Pi VNC接続までを3段階説明 2/3 起動したraspberry pi OSにSSH接続する
拡張機能「Remote – SSH」を入れる
ここからが本番です。VS Code の左端にある拡張機能(四角が4つ並んだアイコン)を押して、Remote - SSH で検索してください。
1つ入れると、3つ入ります。驚かなくて大丈夫です。
Remote - SSH(本体)/ Remote - SSH: Editing Configuration Files(設定ファイルを編集するためのもの)/ Remote Explorer(左端に接続先の一覧アイコンを足すもの)——この3つがまとめて入ります。
接続先を登録する
次は、どのラズパイに繋ぐのかを教えてあげる作業です。Windows側の C:\Users\(ユーザー名)\.ssh\config というファイルに書きます。ファイルが無ければ新しく作ります(拡張子はありません)。
Host raspberrypi
HostName raspberrypi.local
User pi
IdentityFile ~/.ssh/id_ed25519
| Host | 好きな名前。VS Codeの一覧にこの名前で出ます |
|---|---|
| HostName | ラズパイのホスト名(◯◯.local)またはIPアドレス |
| User | ラズパイのユーザー名 |
| IdentityFile | 鍵で接続する場合だけ。パスワードで繋ぐなら、この行は要りません |
4行だけです。書けたら保存して、左端のリモートエクスプローラー(モニターの絵に、右下に小さい丸が付いたアイコン)を押してみてください。
config に書いた Host の名前が、そのまま一覧に出ます。ここに出ていれば設定は読めていますアイコンが見つからないときは、メニューの 表示(V) →「リモート エクスプローラー」でも同じものが開きます。
接続する
いよいよ接続です。一覧の raspberrypi にマウスを乗せると、右端に矢印が出ます。「現在のウィンドウで接続する」を押します。
初回だけ、英語で聞かれます
日本語化してあるのに、ここだけ英語で出ます。一瞬「あれ?」となりました。でも聞かれるのは初回だけです。一度選べば、次からは出ません。
そのあと、けっこう待たされます
ここで、ラズパイ側に1.3GBが置かれます
Remote-SSH は、Raspberry Pi の中に「VS Code Server」という本体を展開します。実際に測った数字です。
接続前:ホームフォルダ 3MB → 接続後:1,314MB(~/.vscode-server が 1,311MB・6,260ファイル)
microSDの空き容量を先に確認してください。2GB以上は見ておきたいところです。
展開の様子も測りました。
接続開始から +10秒 28MB / 4ファイル
接続開始から +64秒 595MB / 1,908ファイル
最終 1,311MB / 6,260ファイル
★1回目は、タイムアウトしました
ここが、この記事でいちばん伝えたいところです。
"raspberrypi" への接続を確立できません: Connecting with SSH timed out.
失敗したように見えますが、このときラズパイ側を調べたら、展開は終わっていました。
応答 あり
負荷 0.02 / 0.13 / 0.08 ← ほぼ無負荷
メモリ 944MB / 8,062MB ← 余裕あり
.vscode-server 1,311MB / 6,260ファイル ← 展開は完了している
SSHのログ Accepted publickey ... ← 認証も成功している
再試行すれば通ります
「再試行」を押したら、そのまま繋がりました。
1.3GBを6,260ファイルに展開する処理がmicroSD上で重く、VS Code側の待ち時間を超えてしまった、というのが素直な読み方だと思います。断定はしません。ただ、展開そのものは終わっているので、2回目は速いです。
中の人
ここで「設定を間違えたかな」と戻っちゃう人、いると思うんだよね。展開が終わってるのに諦めるのはもったいない。
繋がると、左下がこうなります
2回目からは速いです
1.3GBの展開は初回だけです。~/.vscode-server はラズパイ側に残るので、次からはダウンロードも展開も走りません。
実際、タイムアウトしたあとの「再試行」は、待たされる感じもなく繋がりました。
フォルダを開く
メニューの ファイル(F) →「フォルダーを開く…」を選ぶと、パスの入力欄が出ます。ここに入れるのはラズパイ側のパスです。
/home/pi/myproject
なぜ聞かれるのか。VS Code は、開いたフォルダの中にある設定に従ってコードを実行することがあります。だから知らない場所を開いたときは、いちど止まるしくみになっています。
自分で用意したRaspberry Piなら「フォルダーを信頼して続行」で問題ありません。
[SSH: raspberrypi] と付きます。ラズパイの中のファイルを見ている、という意味です同じ画面で、ラズパイのターミナルが使えます
ATOMではプラグインをもう1つ入れて実現していた部分です。Remote-SSH では最初から付いています。
メニューの ターミナル(T) →「新しいターミナル」を選ぶだけです。
ここで python3 hello.py と打てば、ラズパイの上で実行されます。編集と実行が同じ画面で完結します。
★拡張機能は、リモート側にもう一度入れる必要があります
ここで詰まる人が多いと思います。実際に引っかかりました。
Windows側には Python 拡張が入っています。だから当然、ラズパイのファイルでも効くだろうと思っていました。試しに hello.py をわざと壊して、文法エラーになる行を足してみたんです。
VS Code は何も言いませんでした。左下のエラー表示は 0 のまま。赤い波線も出ません。
調べたら、こうでした。
Windows側の拡張機能 9個(Python / Pylance / デバッガ など)
ラズパイ側の拡張機能 1個(日本語パックだけ)
拡張機能は2か所に分かれます
Windows側で動くもの:見た目・キーバインド・テーマなど
リモート側で動くもの:Python・Pylance・デバッガなど、ファイルの中身を解析するもの
後者はラズパイ側に別途インストールが必要です。日本語パックだけ自動で入っているのは、あれがUI側のものだからです。
拡張機能を検索すると、ボタンの表示が変わっているのが分かります。
このボタンを押せば、ラズパイ側に入ります。入れたあとは、補完もエラー検出も効くようになります。
入れたのに、まだ効かないとき。Python拡張は、入れたあとに「どのPythonを使うか」を選ぶ必要があります。リモート側だと、ここでつまずくことがあります。
「壊れた」と思わないでください
「Windowsでは動いていたのに、ラズパイに繋いだら補完もエラー検出も効かない」——これは壊れたのではなく、リモート側に入れていないだけです。
編集が本当に届いているか、確かめました
VS Codeの画面だけ見ていても「本当にラズパイのファイルが変わったのか」は分かりません。ラズパイ側から直接確かめました。
13:34:10 309バイト ← 文法エラーになる行を足して保存
→ python3 hello.py
SyntaxError: invalid syntax
13:38:41 296バイト ← その行を消して保存
→ python3 hello.py
こんにちは、ラズパイさん
Windowsで打った変更が、ラズパイのファイルに入り、ラズパイの上で実行されています。壊したときはちゃんと壊れ、直したときはちゃんと直りました。
中の人
わざと壊してみるの、地味に大事なんだよね。うまくいった画面だけ見てても、本当に届いてるかは分からないから。
ATOMの記事から来た方へ
| ATOMの記事でやっていたこと | いまの対応 |
|---|---|
| ATOMをインストールする | 不要。VS Codeを使います |
| ATOMを日本語化する | 不要。VS Code本体の日本語パックで足ります |
プラグイン Ftp-Remote-Edit でファイルを編集 | Remote – SSH ひとつ |
プラグイン platformio-ide-terminal でターミナル | |
| 接続先をプラグインの画面で設定 | .ssh\config に4行 |
ATOMのプラグイン方式は「ファイルを取ってきて、直して、送り返す」形でした。Remote-SSH はラズパイの中で編集しているので、送り返す操作そのものがありません。保存すれば、それがラズパイのファイルです。
まとめ
この記事の要点
・ATOMは2022年12月に開発終了。あの3記事の方法はもう使えません
・Remote – SSH は拡張機能1つで、ファイル編集とターミナルの両方ができます
・初回接続でラズパイ側に1.3GBが置かれます。空き容量を先に確認してください
・初回はタイムアウトすることがあります。展開は終わっているので、再試行で通ります
・Python拡張などは、ラズパイ側にもう一度入れます。効かないのは壊れたからではありません
3記事ぶんの手順が1本に減りました。減った理由は、道具が良くなったからというより、やりたかったこと(遠くのファイルを手元で編集する)が、当たり前の機能として取り込まれたからだと思います。
確かめていないことも書いておきます。
・Raspberry Pi Zero など、非力な機種での動作は試していません。1.3GBの展開と、常駐するサーバーの負荷を考えると、Zeroでは厳しい可能性があります
・rootが必要なファイルを開いたときの挙動は確認していません
・検証は Raspberry Pi 5 + Raspberry Pi OS(Trixie)で行いました
使っているOSが「Trixie」に変わっている件は、別記事に書きました。VNCや日本語入力の手順も変わっています。

