ラズパイを操作するには直接キーボードで入力もいいですが、他の端末からSSH接続するのが手軽です。SSHは端末間で行う暗号化された通信のことで、画面を持たないラズパイとPCはとても相性がいいです。ラズパイ←→PC間のSSH接続を解説していきます。
SSHの有効化
SSH接続を有効にする方法は色々あって、
- ディスプレイとキーボードを直に繋いで設定
- LANケーブルで繋いで設定
- PCのみで設定
の方法があります。ラズパイのサーバー化にあたり、ルーターを介して操作するのが圧倒的に楽なのでそこを目指します。上記のどの方法を選んでも最終的にルーターを介したSSH接続になります。
当面は↑のような認識で大丈夫かと。物事には色々順序がありますので、まずは1から順にSSHの有効化と、ラズパイとルーターのWi-Fi接続から解説していきましょう。
ディスプレイとキーボードを接続して設定
最も簡単というか、ハマりにくい方法ですが、手間と各種道具の準備がメンドイです。メンドイので便宜上SSH画面で解説を進めます。書き込みが終わったmicroSDとUSBキーボード、HDMIディスプレイを接続して起動。ログインが済んだら
sudo raspi-config
と打ち込むとコンフィグ画面が表示されます。
5.Interfacing Optionsを選択
次の画面でP2 SSHを選択。
Yesで完了。これでSSHは可能ですが、まだルーターと繋がってないので、PC側から接続を試みても無理なはずです。
ですので、今度はラズパイとルーター間の接続を確保しましょう。確保しましょうとか偉そうに言いましたけど、要領はスマホをルーターに繋ぐのとさして変わりませぬ。
コンフィグ画面の2.Network Optionsを選択
N2.Wi-Fiを選択してWi-Fiを使う国を選択(JPじゃないと不具合が出たりするよ)
続いてSSID、パスワードの順で入力で完了。間違いなく設定できていれば
sudo reboot
で再起動すれば繋がるはずです。PCでのSSH接続に続きます。
※注1 ラズパイ用の3.5インチディスプレイが安く販売されてますが、CUI(今回選んだLite)では文字がミジンコサイズで読めません。安いからと手を出すと痛い目を見ます。面倒でもHDMIでテレビなどに繋ぎましょう(3.5インチをディスってるわけじゃないよ)。
LANケーブルで繋いで設定
PCとラズパイをLANケーブルで繋いでSSH接続し、Wi-Fiなどの設定もできます。かなり手軽ですが、何となく中途半端です。サーバーはルーターと有線接続が基本なのでこちらの方法でPCからLANの設定をして雰囲気を掴み、ルーターに繋ぎ替えるのもありです。
まず書き込みの終わったmicroSDを開き、新規ファイルを作ります。そのファイルを拡張子なしのsshに改名します。内容は空でいいです。これで準備はできました。
microSDをさし、PCとラズパイを直接LANケーブルで繋いで起動します。立ち上がるまでしばらく待ちましょう。緑のLEDが高速点滅してるうちはまだOS立ち上げ中です。
コマンドプロンプトを立ち上げます。左下の「ここに入力して検索」にコマンドプロンプトと入力すると出てきます。立ち上がったら、
ssh pi@raspberrypi.local
と入力します。sshファイルがきちんとできていれば、SSH接続していいか確認されますので、yesを入力で接続されるはずです。
こんどは以下の魔法の呪文を入力します。SSIDとパスワードは適宜変えます。
sudo sh -c 'wpa_passphrase あなたのSSID あなたのパスワード >> /etc/wpa_supplicant/wpa_supplicant.conf'
できたら上手くいったか確認をします。続けて、
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
と入力してみましょう。なにやら画面が切り替わりました。
sudoはLinuxで特に重要な考え方の権限に関するコマンドです。windowsを使っているとあまり意識しませんが、何かにつけて権限ウンチャラの問題が発生します。何か詰まったら権限関係の修正がほとんどです(自分だけかもしれませんが……)。理解してないとどこかで詰みます。今はまだ権限が超大事になることだけ覚えておいて、徐々に理解していきましょう。nanoはファイル内容を編集する機能です。
そこには
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP
network={
ssid="さっきのSSID"
#psk="さっきのパスワード"
psk=長い英数字の文字列
}
といった内容が書かれていて、ssidと#pskの部分が間違ってなければ大丈夫です。ここで、#psk=”さっきのパスワード”の行は削除してしまいます。pskの行は残します。今後書く予定のネットワークの暗号化がこれでできて、セキュリティが気持ち強固になります。Ctrl + Oで保存、Ctrl + Xで編集画面を抜けます。
sudo rebootで再起動すればWi-Fiに繋がります。一応ラズパイ←→PC間で直接SSHで繋がりましたが、これではラズパイをぶら下げたままなので不便です。より便利にSSH接続で作業するためルーターを介します。PCでのSSH接続に続きます。
PCのみで設定
LANケーブルも何もなしでSSH、Wi-Fiの設定。その後ルーターを介してSSH接続します。
LANケーブルで繋いで設定の項目で作成した空のsshファイルと別に、wpa_supplicant.confという名前のファイルを作ります。これをVScodeなどのエディタで開きます(メモ帳はダメです!!)。以下の内容を書き込みましょう
country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="あなたのSSID"
psk="パスワード"
}
先ほど見た気がしますね。そうです、先ほど編集した/etc/wpa_supplicant/wpa_supplicant.confにそっくりです。このファイルはラズパイ起動時に自動でよしなにしてくれるようになっています。
きちんと設定ができていれば、このまま起動することでWi-Fiに繋がります。次項PCでのSSH接続に続きます。
PCでのSSH接続
ここまででラズパイのSSHの有効化、ラズパイとルーターのWi-Fi接続までできました。この項では、ルーターを介してSSH接続していきます。
Piに物申すためにターミナルソフトと呼ばれるソフトを利用します。色々なソフトがありますが「RLogin」がわかりやすくていいです。というか他の選択肢はない!!Git hubでダウンロードでき、解凍してできたexeファイルで利用できます。
RLoginでSSH
起動すると以下のようにServer Select画面が開きます。
新規で新しい接続ルールを作ります。
上記のように
- エントリー/コメント欄にわかりやすい任意の名前
- Server Address欄にraspberrypi.local
- Select Portはssh
- User Nameはpi
- Password/phraseはraspberry
- OK
- で完了
できたルールを選択してOKを押します。ゴニョゴニョ出て入力待ちになれば接続成功です。
これで作業が始めれます
これで
最初のイメージ通りこんな感じになりました。これで作業用PCからラズパイに指示が出せます。このまま作業は進められますが、何かと不便な点や外部からの攻撃に対する防御力の低さが問題として出てきますので、その辺りを改善していきます。