PR

【初心者向け】Raspberry PiにSSH接続する方法|公開鍵設定からVSCode連携まで完全解説

スポンサーリンク
RaspberryPi
スポンサーリンク

はじめに

Raspberry Pi(ラズパイ)を触っていて、誰もが一度は感じる煩わしさ。それは**「周辺機器の準備」と「ファイルの受け渡し」**ではないでしょうか。

使うたびにモニターやキーボードを繋ぎ直し、PCで作ったプログラムをUSBメモリなどで移動させる……。そんな手間を解消し、「メインPCから直接ラズパイを操作したい!」という欲求に応えてくれるのがSSH接続です。

SSH(Secure Shell)は、ネットワーク経由で安全にリモート操作するための仕組みです。

今回は、SSH接続する手順の解説と、SSH接続を試してみた使用感を書きたいと思います。

Raspberry Pi SSH接続の事前準備(公開鍵作成)

まずは、接続に必要な「鍵」をWindowsのPowerShellで作ります。

PowerShellを開き、作業するユーザーディレクトリに移動します。

cd ~

ls

lsと入力してディレクトリ内を表示させます。
「.ssh」フォルダが無ければ下記コマンドを実行してください

mkdir .ssh

「.ssh」フォルダを作成したら「.ssh」フォルダに移動します。

cd .ssh

以下のコマンドを実行します。-f の後は好きな鍵名でOKです。
※この記事ではninjinpyvbalabで進めます

ssh-keygen -t ed25519 -C "" -f ninjinpyvbalab

パスワードの入力: 2回聞かれます。入力しても画面には何も表示されませんが、しっかり入力してEnterを押してください。
※パスワードは忘れないようにメモしましょう


以下のコマンドを実行して.ssh内のリストを表示します。

ls

※画像の様に表示されれば成功です。


以下のコマンドを実行して公開鍵を確認し、メモ帳などにコピーしておきます

cat ninjinpyvbalab.pub

注意! ここでコピーするのは**「公開鍵」**です。ラズパイ側に「この鍵を持つ人のみ通す」という設定をするために使います。


Raspberry Pi OSのインストールと初期設定

Raspberry Pi Imagerを使ってOSを書き込む際、設定をカスタマイズします。
OSカスタマイズ項目:

  • 「SSHを有効にする」にチェック。
  • 「公開鍵認証のみを使用する」を選択。
  • 先ほどコピーした公開鍵(ssh-ed25519 …)を貼り付けます。

今回ニンジンはRaspberry Pi 4 ModelAを使用するので、「Raspberry Pi 4」を選択します。

「Raspberry Pi OS(64-bit)」を選択します。

MicroSDカードを選択します。

任意のホスト名を入力します。
※後ほど使用するのでメモ推奨

次へ

ユーザー名とパスワードを入力します。
※後ほど使用するのでメモ推奨

Wifiの設定します。
※設定するネットワークは、ルーター側でデバイス間通信が禁止されていない事。

SSHを有効化する・・・ONにする。
Use public key authentication にチェック
BROWSEをクリックして、作成した公開鍵のファイルを選択します

画像のように公開鍵が登録されたら次へ

次へ

WRITEでMicroSDカードへ書き込み

OSイメージ書き込み完了

PowerShellにてRaspberry piにSSH接続してみる

ラズパイを起動したら、いよいよ接続です。

ユーザーディレクトリに移動

cd ~

.ssh ディレクトリに移動

cd .ssh

下記コマンドを入力してRaspberry PiにSSH接続をします。

ssh -i ninjinpyvbalab raspberry@pi0324.local

・初回接続時は yes と入力。
・鍵作成時に設定したパスワードを入力します。


user@hostname:~ $ と表示されれば成功です!

スポンサーリンク

Raspberry PiにSSH接続できない原因と対処法

つながらない時は?

実際にニンジンは、Raspberry Pi 3 Model B+ でSSH接続を試したときは、「ホスト名.local」では接続出来ませんでした。その際は、Raspberry Pi 3に一度ディスプレイを接続してIPアドレスを確認し、「ホスト名.local」を「IPアドレス」に変更することでSSH接続できました。

また、会社のネットワークにWifi接続していたため、デバイス間通信がパブリック設定(禁止)されており、接続できずに2時間ぐらい悩んだこともあります……。SEに相談したら「パブリックなんだから当たり前」と言われて、気が付きました。皆さんもネットワーク設定には注意してください。

  • ホスト名.localIPアドレス に変えて試す。
  • ルーターの設定(プライバシーセパレーター等)でデバイス間通信が禁止されていないか確認。

接続できない時の対処法(authorized_keysの手動作成)

もしImagerの設定で接続できなかった場合は、SDカードに直接設定を書き込みます。

Raspberry PiのOSを書き込んだMicroSDカードをPCに差し、ルートディレクトリ(bootパーティション)に authorized_keys という名前のファイルを作成。※拡張子をつけない

その authorized_keys ファイルをメモ帳などで開き、PCで作った公開鍵の内容cat ninjinpyvbalab.pub で確認したもの)をペーストして保存します。。※メモ帳等で開く

Raspberry PiにMicroSDカードを戻して、Raspberry Piを立ち上げてSSH接続を試してみて下さい。

スポンサーリンク

VSCodeで開発環境を作る

毎回コマンドを打つのは面倒なので、VSCodeの「Remote – SSH」拡張機能を使いましょう。

VS Code公式サイトよりソフトをインストール
https://visualstudio.microsoft.com/ja/downloads/


VS Codeを開く
Windowの左端にある「拡張機能」をクリック
Remort – SSHを検索して、インストール


リモートエクスプローラーをクリック
SSHの⚙をクリックして「C:\User\XXXX\.ssh\config」をクリック


以下のコマンドを入力する。

Host pi0324
HostName pi0324.local
User raspberry
IdentityFile C:\Users\ENGnote\.ssh\ninjinpyvbalab
ServerAliveInterval 60

※環境に合わせて、ホスト名、ユーザー名等を変更してください

更新すると
pi0324がSSHの↓に表示されるので、「→」ボタンをクリック

最初の接続しは信頼して接続して良いか聞かれるのでYES
その後、WIndow上部中央付近でSSHキー(パスワード)を求められるのでパスワードを入力

SSH接続が成功するとWindowの左下に青く「SSH:ホスト名」が表示されます。

これで、PC上のファイルを編集するのと同じ感覚で、ラズパイ上のプログラムを開発できるようになります。

スポンサーリンク

まとめと使用感:Raspberry Pi 4 Model Aの実力

今回は Raspberry Pi 4 Model A で検証しました。

3 Model B+ では接続が不安定な場面もありましたが、4系は比較的スムーズです。ただし、VSCode経由でPythonを動かすと、メモリ消費やネットワーク負荷により接続が切れることもあります。

GUI(デスクトップ環境)を起動しているとリソースを食うため、本格的な自動化ラボを目指すなら、GUIを持たないCUI(デスクトップなし)での運用も検討の余地がありそうですね。

これで、XYテーブル製作のプログラム開発も捗りそうです!

コメント