2020/3/4のメモ。 Raspberry pi Zero を、購入後一切モニタにつなぐことなく無線LAN経由でSSHできるようセットアップする手順。

母艦は MacOS X で行っているが、SDカードへの書き込みができればなんでもよい。

肝となるのは、OSを書き込んだSDカードに次のように手を加えておくことだ。

  • 事前に無線LANのSSIDとパスワードを記述したファイルをおく
  • SSHを有効化する

起動前

micro SD cardのフォーマット

SD Association公式サイトより、SDカードフォーマッターをダウンロードする。

ダウンロードしたSDカードフォーマッターでSDカードをフォーマットする。

( FAT, FAT32, exFAT)。 4GB以上(要出典)。

OSイメージのダウンロード

raspberry pi公式サイトからraspbianをダウンロードする。

ここではGUIが必要ないので、[Raspbian Buster Lite]のzipをダウンロードする。

OSイメージの書き込み

# ダウンロードしたzipを展開してimgファイルを得る
$ unzip 2020-02-13-raspbian-buster-lite.zip

# デバイスを確認
$ diskutil list

# フォーマット済みの書き込み先デバイス(ここでは/dev/disk2)をunmount
$ diskutil unMountDisk /dev/disk2

# 書き込み
$ sudo dd bs=1m if=2020-02-13-raspbian-buster-lite.img of=/dev/disk2

wifiの事前設定とsshの有効化

書き込み後のSDカードのbootドライブをマウントする。(/Volumes/boot)

$ cd /Volumes/boot
# bootドライブちょっかいsshという名前のファイルが有ると、初期状態でsshが起動する
$ touch ssh

# wifi設定を書き込む
$ vim wpa_supplicant.conf

wpa_supplicant.confの中身は以下の通り

# wpa_supplicant.conf

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP

network={
        ssid="接続先アクセスポイントのSSID"
        psk="接続先アクセスポイントのパスワード"
}

起動

micro SDカードを差し込み、PWRと書かれた方のmicro USB Bポートに電源ケーブルをつなぐと起動する。

ipアドレスとmacアドレスの確認とDHCPリースの固定

起動すると、自動でwifiに接続して22版ポートが開いてsshが立ち上がる(少し時間がかかる)

ルータの設定画面などをみて、新しく接続されたデバイスに注目する。raspberry piっぽい端末のmacアドレスを見つける。

DHCPリースを固定にして、このMACアドレスに対応するIPアドレスをわかりやすいものに固定しておく

sshで接続

クライアント側

$ ssh pi@192.168.0.13
# raspberry pi のIPアドレスを指定(ここでは 192.168.0.13 であるとする)
# デフォルトのIDは pi
# デフォルトのパスワードは raspberry

設定

raspberry pi側

# visudoでnanoではなくvimを立ち上げる
# 参考: https://qiita.com/koara-local/items/35b999631b6ab41fdc9f
$ sudo update-alternatives --config editor

# vimをエイリアスとして登録
$ vim ~/.bashrc

.bashrcに下記を追記

# .bashrc
alias vim='vi'

変更を読み込む

$ source ~/.bashrc

sshの設定

ssh用ユーザの作成

raspberry pi側

# yammerというユーザを作るとする
$ sudo useradd yammer
$ sudo passwd yammer
$ sudo visudo

visudoによって、/etc/sudoersに下記を追記

yammer  ALL=(ALL) ALL

ssh用公開鍵の作成

ssh用の公開鍵を作る。

クライアント側

$ cd ~/.ssh
$ ssh-keygen -t rsa -b 4096 -C "raspberry-pi" -f ~/.ssh/id_rsa_pi

sshのパーミッションを設定

raspberry pi側

$ cd /home/yammer
$ chmod 700 .ssh
$ chmod 600 .ssh/authorized_keys

ssh公開鍵を送る

クライアント側

$ scp ~/.ssh/id_rsa_pi.pub yammer@192.168.0.13:/home/yammer/.ssh/authorized_keys

ssh設定

raspberry pi側

$ sudo vi /etc/ssh/sshd_config
# /etc/ssh/sshd_config

RSAAuthentication   yes
PubkeyAuthentication   yes
AuthorizedKeysFile   .ssh/authorized_keys
AllowUsers yammer # ユーザ名を追加
$ sudo /etc/init.d/sshd restart

接続できるか確認

クライアント側

$ ssh -i ~/.ssh/id_rsa_pi yammer@192.168.0.13

参考