Raspberry Pi 環境構築
はじめに
Raspberry Pi(ラズパイ)を触っていて煩わしいのが、「モニター・キーボードの繋ぎ直し」と「ファイルの受け渡し」です。使うたびに周辺機器を接続し、PCで書いたプログラムをUSBメモリで移す……。この手間を解消し、「メインPCから直接ラズパイを操作したい」を叶えるのが SSH接続です。
SSH(Secure Shell)は、ネットワーク経由で安全にリモート操作するための仕組みです。この記事では、Windows から Raspberry Pi へ 公開鍵認証で SSH 接続する手順を、つまずきやすいポイントと合わせて解説します。
この記事で分かること
- Windows の PowerShell で SSH 鍵ペアを作る手順(
ssh-keygen -t ed25519) - Raspberry Pi Imager の OS カスタマイズで、SSH 有効化+公開鍵を登録する方法
- PowerShell から
ssh -i 鍵名 ユーザー名@ホスト名.localで接続する手順 - 接続できない時の対処(
.localが引けない/プライバシーセパレーター/authorized_keysの手動作成) - VS Code の「Remote – SSH」でラズパイを開発環境にする方法
事前準備:Windows で SSH 鍵ペアを作成する
まず、接続に使う「鍵」を Windows の PowerShell で作ります。鍵は秘密鍵(PC に置く)と公開鍵(ラズパイに登録する)のペアです。順番に進めていきましょう。
以下のコマンドを実行します。-f の後は好きな鍵名で構いません。※この記事では ninjinpyvbalab で進めます
パスフレーズの入力:2回聞かれます。入力しても画面には何も表示されませんが、しっかり入力して Enter を押してください。
パスフレーズは忘れないようにメモしましょう(このあとの SSH 接続や VS Code 接続でも使います)。
Raspberry Pi Imager で SSH を有効にして OS を書き込む
Raspberry Pi Imager で OS を書き込むとき、OS のカスタマイズ画面で「SSH を有効にする」「公開鍵認証のみを使用する」を設定し、先ほどコピーした公開鍵を貼り付けます。
ここが今回のキモです。
- SSH を有効化する を ON にする
- Use public key authentication(公開鍵認証のみ)にチェック
- BROWSE をクリックして、作成した公開鍵(
ninjinpyvbalab.pub)のファイルを選択する
PowerShell から Raspberry Pi に SSH 接続する
ラズパイを起動したら、いよいよ接続です。PowerShell から順に進めます。
下記コマンドで Raspberry Pi に SSH 接続します。
ssh -i ninjinpyvbalab <ユーザー名>@<ホスト名>.local-i には秘密鍵のファイル名、@ の前後は Imager で設定したユーザー名とホスト名を入れます(例:ssh -i ninjinpyvbalab pi@raspberrypi.local)。
- 初回接続時は
yesと入力 - 鍵作成時に設定したパスフレーズを入力
SSH 接続できない原因と対処法
「ホスト名.local」で繋がらない
環境によっては ホスト名.local(mDNS)が解決できないことがあります。実際、Raspberry Pi 3 Model B+ で試したときは .local では接続できず、一度ディスプレイを繋いで IP アドレスを確認し、ホスト名.local を「IP アドレス」に変更することで接続できました。
また、会社のネットワークに Wi-Fi 接続していたとき、デバイス間通信がパブリック設定(禁止)になっていて、接続できず2時間ほど悩んだこともあります。ネットワーク設定には注意してください。
ホスト名.localを IP アドレスに変えて試す(IP はラズパイ側でhostname -I、またはルーター管理画面で確認)- ルーターの設定(プライバシーセパレーター/AP アイソレーション等)で、デバイス間通信が禁止されていないか確認する
接続できなかった時の対処:authorized_keys を手動で作成する
Imager の設定で接続できなかった場合は、SD カードに直接設定を書き込みます。
OS を書き込んだ microSD カードを PC に挿し、ルートディレクトリ(boot パーティション)に authorized_keys という名前のファイルを作成します(拡張子はつけない)。
boot パーティションの場所は OS のバージョンで変わります(Bookworm 系では /boot/firmware/)。PC からは通常「bootfs」などの名前のドライブとして見えます。
VS Code の「Remote – SSH」でラズパイを開発環境にする
毎回コマンドを打つのは面倒なので、VS Code の拡張機能「Remote – SSH」を使いましょう。PC 上のファイルを編集するのと同じ感覚で、ラズパイ上のプログラムを開発できるようになります。
まず VS Code 公式サイトからソフトをインストールします。
開いた config に以下を追記します。
ホスト名・ユーザー名・鍵のパスは環境に合わせて変更してください。
まとめと使用感(Raspberry Pi 4 Model B)
今回は Raspberry Pi 4 Model B で検証しました。3 Model B+ では接続が不安定な場面もありましたが、4 系は比較的スムーズです。ただし、VS Code 経由で Python を動かすと、メモリ消費やネットワーク負荷で接続が切れることもあります。
GUI(デスクトップ環境)を起動しているとリソースを消費するため、本格的に自動化ラボとして使うなら、デスクトップ環境なし(CUI/Lite 版)での運用も検討の余地があります。
次に読む記事
💾 OSインストールの詳解 Raspberry PiのOSインストール完全ガイド|初心者向けにゼロから解説 Imager の使い方から初回起動まで。SSH 設定の前段をもっと丁寧に知りたい方へ。 → 🛠️ PC側の開発環境 業務自動化の第一歩!VS CodeでPythonを動かすための環境構築ガイド VS Code + Python のインストールと PATH 設定。ラズパイ側とセットで整えるとスムーズです。 → 📐 SSHでラズパイ開発を活かす Raspberry PiとPythonでXYテーブルを自作する|回路設計からTkinter GUI制御まで SSH でラズパイに繋いで、実際に「動く装置」を作るシリーズ。GPIO 制御からGUIまで全工程。 →よくある質問(FAQ)
Qすでに作ってある SSH 鍵(id_ed25519 など)を使い回せますか?
Aはい。新しく作らず、既存の公開鍵(~/.ssh/id_ed25519.pub など)の内容を Imager や authorized_keys に貼り付ければ使えます。接続時は -i でその秘密鍵を指定します。
Qssh でホスト名.local が「Could not resolve hostname」になります。
AmDNS(.local 名前解決)が環境で無効なことが原因です。ラズパイ側で hostname -I を実行するかルーター管理画面で IP アドレスを調べ、ssh -i 鍵名 ユーザー名@192.168.x.x のように IP を直接指定してください。会社・公共 Wi-Fi ではプライバシーセパレーターで通信自体が遮断されていることもあります。
Q鍵作成時のパスフレーズを忘れました。
Aパスフレーズは復元できません。新しい鍵ペアを作り直し、公開鍵をラズパイ側(Imager 再書き込み、または ~/.ssh/authorized_keys の追記)に登録し直してください。
Q最近の Raspberry Pi OS には pi ユーザーが無いと聞きました。
Aはい。Bookworm 以降はデフォルトの pi ユーザーが廃止され、Imager の設定で自分でユーザー名を決める方式になりました。SSH 接続時の ユーザー名@ホスト名 は、その設定したユーザー名を使います。
Q複数の Raspberry Pi に接続する場合は?
A~/.ssh/config に Host ブロックを機体ごとに追記すれば、VS Code や ssh ホスト名 で切り替えられます。鍵は共通のものを使い回して構いません。
Qデスクトップ版と Lite 版、どちらを入れるべきですか?
ASSH と VS Code だけで開発するなら、GUI の無い Lite 版が軽くておすすめです。カメラプレビューなど画面が必要な作業をする場合はデスクトップ版を選びます。後から sudo apt install で切り替えることもできます。
Follow me on X
本ブログの中の人「ニンジン🥕」はXやってます。新着記事はいち早くポストでお知らせしているので、見逃したくない方は @ninjin_py_vba をフォローしてみてください🥕
@ninjin_py_vba をフォローシリーズ記事一覧
電子工作・自動化ツールの製作記録をシリーズごとにまとめています。気になるテーマからお読みください。
-
FILE.01 — IoT
Raspberry Pi Pico W × GASラズパイPico W×GASで自作!「LINEで動く温湿度&スマートリモコン」完全ロードマップ
「外出中のペットの室温が心配…」そんな思いからスタートしたIoT自作プロジェクトの総集編。温湿度監視からエアコン遠隔操作まで、仕組みをゼロから作りたい方のための全5回の開発記録です。
シリーズを読む -
FILE.02 — CNC
Arduino × レーザー刻印CNCCNC自作シリーズ
高精度な加工を目指し、本格的な自作CNC製作に挑戦中。現在は基幹パーツであるオリエンタルモーターの納品を待つ「設計・準備編」を公開。ハードとソフトの両面から、理想のマシンを形にする過程をリアルタイムにお届けします。
シリーズを読む -
FILE.03 — XY軸制御
Raspberry Pi × ステッピングモーターXYテーブルシリーズ
Raspberry Piとステッパモーターを使い、ゼロから2軸制御に挑む記録。OS設定から回路設計、多軸制御のPythonコードまで、躓きやすいポイントを徹底図解。電子工作初心者が「動く感動」を味わうための実戦ガイドです。
シリーズを読む -
FILE.04 — 業務自動化
Python × Excel × CustomTkinter【Python開発記】NINJIN Mail制作記
PythonとExcelを連携させ、実務で即戦力となるメール送信ツールを開発。CustomTkinterによるUI構築や、ミスを防ぐテンプレート活用術など、現場の「痒い所に手が届く」自動化ノウハウを細部まで丁寧に解説します。
シリーズを読む -
FILE.05 — 業務自動化
Python × Excel × GUIアプリ化Invoice Maker(請求書・見積書自動作成)
手作業の請求書作成から卒業!PythonでExcelデータを読み込み一括PDF化する「Invoice_Maker」の作り方を全3回で解説。基本ロジックからGUIアプリ化まで、実務で役立つ自動化ノウハウが満載です。
シリーズを読む


































コメント