Raspberry Pi zero WHをモニター・キーボードなしでSSH接続するまで

Raspberry Pi zero WHをモニター・キーボードなしでSSH接続するまで
Raspberry Pi zero WHをモニター・キーボードなしでSSH接続するまで

この記事では「キーボードなし」「モニターなし」「マウスなし」「LANケーブルなし」でRaspberry Pi(ラズパイ)の初期設定する方法をくわしく解説します。SSHでRaspberry Piをリモート操作できるように、Mac上でRaspberry Piの環境構築を行なっていきます。

▼ Raspberry Pi 4のインストール方法はこちら

はじめに

この記事では Raspberry Pi zero WH を使用しましたが、PICO以外の他のRaspberry Piでも基本設定は同じになります。

PICO以外のRaspberry PiならOK
PICO以外のRaspberry PiならOK

Raspberry Pi本体以外に、この記事で必要な製品、技術は次のとおりです。

  • 8GB以上のマイクロSDカード
  • ターミナルの操作(Vimなどの基本操作)
  • パソコン(Macを使用しました)

以上です。 ▼ マイクロSDカードは余裕をみて、32GBのものを選びました。

Raspberry PiではSDカードを入れ替えるだけでOS環境をサクッと切り替え可能です。メモリカードも大容量化が進み年々安くなってます。

▼ Vimの操作方法はこの記事で説明いたしません。Vim操作が苦手な方は本を読むと良いです。Vimの世界が深くて面白いことがわかります。

▼ また、Raspberry Piのケースがあるとモチベーションが上がりますので、ケースに収納することをおすすめいたします。耐久性も上がり、壊れにくくなります。

初期設定の手順

この記事で行うRaspberry Piの初期設定の手順は、次の3つです。これらの作業はmacOSで行いました。

  1. Raspberry Pi OS のインストール
  2. SSHの設定
  3. 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が良いでしょう。

Raspberry Pi Imager
Raspberry Pi Imager

SDカードをセットして、Storage で選択します。

SSHとWiFiの設定

次に、Raspberry Pi Imagerの画面右下にあるギアボタンをクリックしましょう。ここでSSHとWiFiの初期設定を行えるようになってます。

こんな感じで項目を設定します。

詳細設定
詳細設定

あとは WRITE を実行すれば自動でOSイメージのダウンロードから書き込みまでを行ってくれます。とっても便利ですね!

SDカードをRaspberry Piに挿して、起動すれば完了です。お疲れさまでした!

おつかれさまでした!
おつかれさまでした!

Raspberry PiへSSH接続

ここからは、実際にRaspberry PiへSSHで接続してみましょう。

Raspberry Piの起動後に自動でWiFi接続されるはずですので、クライアントマシンからターミナルを開いてSSHでアクセスしてみます。

ローカルネットワーク内で、ホスト名をつかってアクセスするには、.local の記述が必要となりますのでご注意ください。

初回時のみフィンガープリントの質問が聞かれますがyesを入力してエンターしておきましょう。

シェルが画面が切り替われば、Raspberry Piへログインできてます。

shell
pi@raspberrypi:~ $ pwd
/home/pi

もしSSH接続できない場合は、下記の「Raspberry PiにSSHでつながらない」をご覧ください。

SSHを終了したいときは $ exit コマンドを実行してください。

▼ 毎回パスワード入力するのが面倒な方はこちら。

▼ テザリング環境の方はこちら。

Raspberry Piの電源をオフにする、再起動する

Raspberry Piの電源を切るときは shutdown コマンドを実行してください。Raspberry Piもパソコンと同様に、電源ケーブルそのまま抜くとOSイメージの破損の原因となります。

shell
$ sudo shutdown -h now

再起動はreboot ですね。パソコンと同じで、なにか調子が悪くなったらとりあえず再起動しましょう。

shell
$ sudo reboot

Raspberry Piはパソコンと同じだよ
Raspberry Piはパソコンと同じだよ

Raspberry PiにSSHでつながらない

実際に私が経験したSSHエラーのトラブルをご紹介します。

ssh: connect to host raspberrypi.local port 22: Connection refused

sshサーバーが起動してないため繋がりません。最初に説明したとおり、SDカードに ssh ファイルを作成したかどうかご確認ください。

shell
$ cd /Volumes/boot/
$ touch ssh

古いフィンガープリントが残っている(~/.ssh/known_hosts)

もしも以前に同じホスト名でSSHへアクセスした場合、端末側の ~/.ssh/known_hosts に古いフィンガープリントが残っている可能性があります。 その場合、次のようなエラーが表示されます。

shell
$ ssh [email protected]
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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.
$ vi ~/.ssh/known_hosts で開いて、同じホスト名の行を削除してからもう一度SSH接続を試してみてください。

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を再インストールします。

shell
$ sudo apt-get --purge remove vim-common vim-tiny
$ sudo apt-get install vim

「apt-get --purge remove」の「--purge」オプションを付けることによってパッケージだけでなく、そのパッケージの環境設定をすべて削除してくれます。

Gitのインストール

Raspberry PiにセンサをとりつけてIoTみたいなことをやりたい方は、オープンソースのライブラリをバリバリ使うことになります。そのときにGitでインストールすると便利なのでGitも入れておきましょう。

shell
$ sudo apt-get install git

これで git コマンドが使えるようになりました。

shell
$ 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 が入っていました。

shell
$ python --version
Python 3.9.2

pipが入ってませんでしたので次のコマンドでインストールします。

shell
$ sudo apt-get -y install python3-pip

こんな感じでインストールされているモジュールを確認できます。

shell
$ 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 を実行して設定ファイルを編集します。

shell
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を再起動すれば新しいホスト名に切り替わります。

おわり

以上でキーボードなしでのラズパイ初期設定の説明はおわりになります。

▼ Raspberry Piのステップアップとして、これらの記事もご覧ください。

関連記事

 
最後までご覧いただきありがとうございます!

▼ 記事に関するご質問やお仕事のご相談は以下よりお願いいたします。
お問い合わせフォーム

この記事で紹介した商品

人気のArduino互換機
Arduinoで人気の周辺パーツ
あると便利な道具
Arduinoのオススメ参考書

▼ Arduino初心者向きの内容です。ほかのArduino書籍と比べて図や説明がとてもていねいで読みやすいです。Arduinoで一通りのセンサーが扱えるようになります。

▼ 外国人が書いた本を翻訳したものです。この手の書籍は、目からうろこな発見をすることが多いです。

▼ Arduinoの入門書を既に読んでいる方で、次のステップを目指したい人向きの本です。C言語のプログラミングの内容が中心です。ESP32だけでなく、ふつうのArduinoにも役立つ内容でした。

Seeed Studio関連製品
ATmega32U4搭載ボード
関連記事