Raspberry Pi OSインストールから初期設定まで 2022 年版

Raspberry Pi 3インストールから初期設定まで - johshisha’s diary

の情報が古くなってちょくちょく追記してきたのですが、いよいよ管理不能になってきたので、別記事を作りました。 主に自分用のメモですが、他の人のお役に立てれば幸いです。

Raspberry Pi OS のインストール

raspberry-pi-imager を使うと SD へのインストール周りはかなり簡単にできました

raspberry-pi-imager のインストールは以下のコマンドから。 操作方法は割と直感的だったので省きます。(もしわからなければ別途調べてください)

$ brew install --cask raspberry-pi-imager

ネットワークエラーになる場合は Operating system images – Raspberry Pi からダウンロードしてきて、スタンドアロンモードで書き込みをするとよい。

SSH, Wifi の設定

/boot/ 以下に下に示すファイル名でファイルを置いておくと、起動時にいい感じに設定してくれる。

wpa_supplicant.conf

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

network={
    ssid="{Wi-FiのSSID}"
    psk="{Wi-Fiのパスワード}"
    scan_ssid=1
}

ssh

空ファイルを置けばよい

$ touch /Volumes/boot/ssh

SSH 接続

SDを挿して電源をつなげばSSHできる状態で起動しているはず。 初期ユーザは以下。

username: pi
password: raspberry

raspberrypi.local というローカルドメインが設定されているみたいなので、それを利用すると IP アドレスなどを調べる手間もかからない。

ssh pi@raspberrypi.local

こまごました初期設定

update

$ sudo apt-get update && sudo apt-get upgrade -y

Timezone の設定

$ sudo timedatectl set-timezone Asia/Tokyo

IP アドレスの固定化

ローカルドメインが割り振られているので必要ない場合は飛ばして良い

$ sudo vim /etc/dhcpcd.conf

以下の設定を追記

interface wlan0
static ip_address=192.168.11.xx
static routers=192.168.11.yy
static domain_name_servers=192.168.11.yy

SSH Port 変更

$ sudo vim /etc/ssh/sshd_config

ユーザーの追加削除

ユーザ(hoge)の追加

$ sudo adduser hoge
$ sudo gpasswd -a hoge sudo

piユーザの削除

$ sudo userdel pi

自動ログイン解除

GUIありのOSの場合、自動で pi ユーザーにログインがされてしまいユーザーの削除ができなかった。 ので、自動でログインをしないようにする。

sudo vim /etc/lightdm/lightdm.conf 

autologin-user=pi の部分を削除する or コメントアウトする

これでうまくいかない場合は raspi-config からの設定も必要 (Boot Options)

公開鍵認証

パスワードでなく公開鍵認証でログインできるようにします。 ローカルのマシンで以下のように鍵を生成しRaspberry piに送信します。

$ ssh-keygen -t ed25519
$ scp -P [port_number] ~/.ssh/id_ed25519.pub [username]@[ip]:
$ ssh -P [port_number]  [username]@[ip]

raspberrypi側で,送られてきた鍵を登録します.

$ mkdir .ssh
$ mv ~/id_ed25519.pub ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
$ sudo service ssh restart

パスワードログインの無効化

$ sudo vim /etc/ssh/sshd_config
PasswordAuthentication no

firewall

無駄なportにはアクセスできないようにする。

$ sudo apt-get install ufw -y
$ sudo ufw default deny
$ sudo ufw allow 80/tcp
$ sudo ufw allow [ssh port_number] # SSH用のポートは開けておく
$ sudo ufw enable

ローカルマシンの設定

ssh configの設定

~/.ssh/configに以下を追記。

Host raspberry
    Hostname [ip]
    Port [port_number]
    User [username]
    IdentityFile ~/.ssh/id_ed25519

Install packages

anyenv

github.com

yarn

classic.yarnpkg.com