Raspberry Pi zero WHをモニター・キーボードなしでSSH接続するまで
この記事では「キーボードなし」「モニターなし」「マウスなし」「LANケーブルなし」でRaspberry Pi(ラズパイ)の初期設定する方法をくわしく解説します。SSHでRaspberry Piをリモート操作できるように、Mac上でRaspberry Piの環境構築を行なっていきます。
▼ Raspberry Pi 4のインストール方法はこちら
はじめに
この記事では Raspberry Pi zero WH を使用しましたが、PICO以外の他のRaspberry Piでも基本設定は同じになります。
Raspberry Pi本体以外に、この記事で必要な製品、技術は次のとおりです。
- 8GB以上のマイクロSDカード
- ターミナルの操作(Vimなどの基本操作)
- パソコン(Macを使用しました)
以上です。 ▼ マイクロSDカードは余裕をみて、32GBのものを選びました。
Raspberry PiではSDカードを入れ替えるだけでOS環境をサクッと切り替え可能です。メモリカードも大容量化が進み年々安くなってます。
▼ Vimの操作方法はこの記事で説明いたしません。Vim操作が苦手な方は本を読むと良いです。Vimの世界が深くて面白いことがわかります。
▼ また、Raspberry Piのケースがあるとモチベーションが上がりますので、ケースに収納することをおすすめいたします。耐久性も上がり、壊れにくくなります。
初期設定の手順
この記事で行うRaspberry Piの初期設定の手順は、次の3つです。これらの作業はmacOSで行いました。
- Raspberry Pi OS のインストール
- SSHの設定
- WiFiの設定
Raspberry Pi Imagerのインストール
以前まで、Raspberry Pi OSの書き込みを手動で行ってましたが、現在は自動で書き込んでくれる「Raspberry Pi Imager」というアプリケーションが配布されてます。めちゃ便利なのでこちらからダウンロードしましょう。 Raspberry Pi OS – Raspberry Pi
Raspberry Pi OSの選択
アプリを起動して、Operating System で「Raspberry Pi OS Lite (32bit)」を選びました。GUIを使うことがない場合は、Liteが良いでしょう。
SDカードをセットして、Storage で選択します。
SSHとWiFiの設定
次に、Raspberry Pi Imagerの画面右下にあるギアボタンをクリックしましょう。ここでSSHとWiFiの初期設定を行えるようになってます。
こんな感じで項目を設定します。
あとは WRITE を実行すれば自動でOSイメージのダウンロードから書き込みまでを行ってくれます。とっても便利ですね!
SDカードをRaspberry Piに挿して、起動すれば完了です。お疲れさまでした!
Raspberry PiへSSH接続
ここからは、実際にRaspberry PiへSSHで接続してみましょう。
Raspberry Piの起動後に自動でWiFi接続されるはずですので、クライアントマシンからターミナルを開いてSSHでアクセスしてみます。
$ ssh pi@raspberrypi.local
初回時のみフィンガープリントの質問が聞かれますがyesを入力してエンターしておきましょう。
シェルが画面が切り替われば、Raspberry Piへログインできてます。
pi@raspberrypi:~ $ pwd
/home/pi
もしSSH接続できない場合は、下記の「Raspberry PiにSSHでつながらない」をご覧ください。
SSHを終了したいときは $ exit コマンドを実行してください。
▼ 毎回パスワード入力するのが面倒な方はこちら。
▼ テザリング環境の方はこちら。
Raspberry Piの電源をオフにする、再起動する
Raspberry Piの電源を切るときは shutdown コマンドを実行してください。Raspberry Piもパソコンと同様に、電源ケーブルそのまま抜くとOSイメージの破損の原因となります。
$ sudo shutdown -h now
再起動はreboot ですね。パソコンと同じで、なにか調子が悪くなったらとりあえず再起動しましょう。
$ sudo reboot
Raspberry PiにSSHでつながらない
実際に私が経験したSSHエラーのトラブルをご紹介します。
ssh: connect to host raspberrypi.local port 22: Connection refused
sshサーバーが起動してないため繋がりません。最初に説明したとおり、SDカードに ssh ファイルを作成したかどうかご確認ください。
$ cd /Volumes/boot/
$ touch ssh
古いフィンガープリントが残っている(~/.ssh/known_hosts)
もしも以前に同じホスト名でSSHへアクセスした場合、端末側の ~/.ssh/known_hosts に古いフィンガープリントが残っている可能性があります。 その場合、次のようなエラーが表示されます。
$ ssh pi@raspberrypi.local
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ED25519 key sent by the remote host is
SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Please contact your system administrator.
Add correct host key in /Users/ユーザー名/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/ユーザー名/.ssh/known_hosts:15
Host key for raspberrypi.local has changed and you have requested strict checking.
Host key verification failed.
OSインストールできたら、これだけはやっておこう
Raspberry PiをSSHで操作できるようになって嬉しいですよね。Raspberry Piで電子工作やプログラミングをやる前に、これだけはやっておいたほうが良いと思うことを紹介しますね。
$ sudo apt-get update
よく見るおまじないですが、$ sudo apt-get update はインストール可能なパッケージの一覧を更新するものです。
apt-get は macOSでいうところの brew 、CentOSでいうところの yum みたいなものですね。$ sudo apt-get upgrade
こちらも、先ほどの $ sudo apt-get update と同様によく見るコマンドですね。$ sudo apt-get upgrade はインストール済みのパッケージを最新バージョンに保ってくれるためのアップグレードコマンドです。OSのバージョンアップが行われるワケではありません。久々に実行したりすると結構時間がかかったりしますので、こまめにやると良いでしょう。
必ず update してから upgrade です。順番をお間違えなく。
$ sudo apt-get update
$ sudo apt-get upgrade
Vimのインストール
Raspberry Pi OS に入っているデフォルトVimは、最小構成版の vim-tiny のために矢印キーが使えません。Vimの再インストールで矢印キーが有効になります。これもやっておいたほうが良いでしょう。 次のコマンドを実行して、Vimを再インストールします。
$ sudo apt-get --purge remove vim-common vim-tiny
$ sudo apt-get install vim
Gitのインストール
Raspberry PiにセンサをとりつけてIoTみたいなことをやりたい方は、オープンソースのライブラリをバリバリ使うことになります。そのときにGitでインストールすると便利なのでGitも入れておきましょう。
$ sudo apt-get install git
これで git コマンドが使えるようになりました。
$ git --version
git version 2.30.2
Gitコマンドに関するざっくりとした説明は Gitと向き合うための、Gitでよく使うコマンドノート をご覧ください。私はいつもGitHubでプライベート(非公開な)リポジトリを作って、そこへ大事なプロジェクトをバックアップするようにしてます。
GitHub: Where the world builds software · GitHub
pipのインストール
Pythonをつかう方はpipもインストールしておきましょう。ちなみに私がインストールしたRaspberry Pi OSでは、はじめから Python 3.9.2 が入っていました。
$ python --version
Python 3.9.2
pipが入ってませんでしたので次のコマンドでインストールします。
$ sudo apt-get -y install python3-pip
こんな感じでインストールされているモジュールを確認できます。
$ pip3 list
Package Version
------------- ---------
certifi 2020.6.20
chardet 4.0.0
colorzero 1.1
distro 1.5.0
gpiozero 1.6.2
idna 2.10
pip 20.3.4
python-apt 2.2.1
requests 2.25.1
RPi.GPIO 0.7.0
setuptools 52.0.0
six 1.16.0
spidev 3.5
ssh-import-id 5.10
urllib3 1.26.5
wheel 0.34.2
ホスト名の変更
もし後からホスト名を変更したくなった場合、 $ sudo vi /etc/hosts を実行して設定ファイルを編集します。
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
127.0.1.1 0 #←ここを書き換える
ここでは 0 がRaspberry Piのホスト名です。たったの一文字ですが、これでも立派なホスト名として使うことができます。 みなさんも、お好きな名前をホスト名になさってください。
次に $ sudo vi /etc/hostname を実行して、同様にホスト名を変えておきます。その後、$ sudo reboot でRaspberry Piを再起動すれば新しいホスト名に切り替わります。
$ ssh pi@0.local
おわり
以上でキーボードなしでのラズパイ初期設定の説明はおわりになります。
▼ Raspberry Piのステップアップとして、これらの記事もご覧ください。