raspberry pi4 の初期設定


ここ数年は全く新しいPCを買うことがなかったのですがとあるYoutube動画を見てこれなら自分でも再現できそうだと思い、早速ラズパイ3台を購入しました。
この記事ではラズパイ購入後にした最低限のセットアップ作業をまとめています。

最初のラズパイOSダウンロードダウンロード以外はLinuxのセットアップ作業とほぼ変わらなくなっていますが、参考までに。

こういったセットアップもあったほうが良いというものがあればコメントで教えて下さい。

OSダウンロードから起動、最低限のセットアップ作業まとめ

OSダウンロード

以下のURLにあるOSファイルをダウンロード
Raspberry PI OS

ダウンロードしたOSをSDカードに焼き付けるにはImagerツールを使います。Raspberry Pi Imagerはラズベリーパイ財団のWebサイトからダウンロードできます。
Raspberry PI OS Imager

Raspberry PI Imagerを起動すると下記の画面が立ち上がります。

↓の2箇所をクリックして、ダウンロードしたOSのイメージファイルと使用するSDカードを選択してください。あとは「WRITE」ボタンを押すだけです。自分の場合5分くらいで終わりました。

SDカードの準備・パーティションの話

Imager使って起動用のSDカードを作るとパーティションが200MBくらいのもの1つしかなく残りの容量はどこに行った?ってなりました。
ただ、実際に作成したSDカードを使ってOSを起動すると残りの容量もきちんと認識してくれますのでご安心を。
始めて見たときはこれを知らなかったので、SDカード不良だったのかなって少しテンパりました。

ケーブルを挿す順番

HDMI

電源、HDM以外

電源

の順番が無難かと思います。電源を入れると自動でOSが起動するので、それ以外は先に刺しておく方が無難だと思います。

組み立て

何らかのケースには入れたほうが良いと思います。
写真は1段ですが、今回は3台用意しましたので、最終形は3段になっています。

起動から初期設定

言語設定・SSH有効化

$ sudo raspi-config

このコマンドで言語設定、SSHの有効化ができるのですが、色々と検索してみましたが今回しようとしていたOSのメニューの情報が見つからずなんとなく英語を読みながら作業を進めました。

これは画像を並べると長くなるので、別で記事を書きます。

モジュールの最新化

ちょくちょくモジュールは更新されるので、まず最初に最新化するようにしましょう。

sudo apt-get update
sudo apt-get upgrade
sudo apt-get clean
sudo apt-get autoclean

※参考
Raspberry Pi パッケージのアップデート方法

ユーザの追加・パスワードの変更

$ sudo useradd [追加するユーザ名]
$ sudo passwd [追加したユーザ名]

ユーザを作ってもユーザのホームディレクトリが作成されなかったので合わせて作成します。

$ sudo mkdir /home/[追加したユーザ名]
$ sudo chown [追加したユーザ名]:[追加したユーザ名] /home/[追加したユーザ名]

# ユーザを追加しても権限がないので、piユーザと同じ権限を付与します。
$ groups pi
pi : pi adm dialout cdrom sudo audio video plugdev games users input netdev spi i2c gpio

# 追加したユーザにpiユーザと同じグループ権限を付与する
$ sudo usermod -G pi,adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,input,netdev,spi,i2c,gpio [追加したユーザ名]

公開鍵・暗号鍵の作成

sshで公開鍵・秘密鍵を使って接続するための作業です。
すでに作成済みの鍵を流用する場合、鍵作成の工程は省略できます。

$ cd ~/
$ mkdir .ssh
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/[追加したユーザ]/.ssh/id_rsa): 
Created directory '/home/[追加したユーザ]/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/[追加したユーザ]/.ssh/id_rsa.
Your public key has been saved in /home/[追加したユーザ]/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 [追加したユーザ]@(マシン名)
The key's randomart image is:
〜〜〜〜〜〜
〜〜省略〜〜
〜〜〜〜〜〜
$ ls .ssh
id_rsa  id_rsa.pub

最終的に「id_rsa」「id_rsa.pub」の2ファイルが作られます。
秘密鍵:「id_rsa」
公開鍵:「id_rsa.pub」
となるので、秘密鍵はssh接続をするもとのPCに配置。公開鍵はファイル名を変えて保存しておく

$ cd ~/.ssh
$ sudo mv id_rsa.pub authorized_keys

※参考
sshキー(秘密鍵・公開鍵)の作成と認証 流れ


公開鍵を使わないでログイン

$ ssh -v -o PubkeyAuthentication=no [ユーザ名]@(IPアドレス) 

複数台設定するとき、ログインユーザを同じ名前にし、かつ、秘密鍵設定済みの場合、ssh接続で公開鍵を使わないことを明示しないと繋がりませんでした。

公開鍵の配置

$ su - [追加したユーザ]
$ cd ~/
$ mkdir .ssh
$ vi authorized_keys
$ chmod 600 authorized_keys

sshの設定変更

sshはraspi-configで有効化していますので、その他の設定を追加でします。

# ポート番号を変更
#Port 22
↓
Port 22222       ←覚えやすいデフォルトとは違うポートに変更。ちなみに22222はあまり良くないと思う

# rootユーザのログインを拒否
#PermitRootLogin prohibit-password
↓
PermitRootLogin no

# 公開鍵方式を有効化
#PubkeyAuthentication yes
↓
PubkeyAuthentication yes

# 公開鍵の保存場所を有効化
#AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
↓
#AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2

# パスワードでの接続の無効化・空パスワードを無効化
#PasswordAuthentication yes
#PermitEmptyPasswords no
↓
PasswordAuthentication no
PermitEmptyPasswords no

自分はサーバに置く公開鍵のファイル名をミスってSSH接続できなくなりかなり焦りました。。。


piユーザの無効化

ラズパイのpiユーザはあまりに有名なので、無効化(削除)します。

$ sudo userdel pi

上記コマンドで「pi」ユーザを削除
下記コマンドで「no such user」が出ればOK!

$ id -a pi
id: `pi': no such user

削除コマンドを実行したときにエラーっぽいメッセージが出ても「no such user」となればよいです。

$ sudo userdel pi
userdel: user pi is currently used by process 596

ホスト名を変更

以下の2ファイルを変更します。raspiーconfigでも変更できます。

sudo vi /etc/hostname

# デフォルトは「raspberrypi」。好きな名前に
raspberrypi
↓
raspberrypi-primary-01
sudo vi /etc/hosts

# 以下の一行にhostnameで変えた名前を設定
127.0.1.1               raspberrypi
↓
127.0.1.1               raspberrypi-primary-01

再起動するとホスト名が変わります。

参考↓
Raspberry Piのホスト名を変更する

※昔はmaster/slaveってよく使いましたが今は使わないです。「ブラックライブズマター」(BLM)から流れが大きく変わっているとのこと。
参考↓
Linuxでも「ブラックリスト」「スレーブ」などの用語を変更へ


LANに固定IPを付与

以下のファイルに有線LANの設定を付与する

sudo vi /etc/dhcpcd.conf

# ファイルの一番下に追記
interface eth0
static ip_address=192.168.192.101/24
static routers=192.168.192.1

再起動することで反映されます。/etc/hostsファイルにもIPの情報を追加しておきましょう。

sudo vi /etc/hosts

# 以下の一行にhostnameで変えた名前を設定
127.0.1.1               raspberrypi
↓
127.0.1.1               raspberrypi-primary-01
192.168.192.101         raspberrypi-primary-01   ←追加

wifiの無効化

# wifiを無効化
$ sudo iwconfig wlan0 txpower off

# wifiを有効化
$ sudo iwconfig wlan0 txpower auto

その他

aliasの設定

cd ~/
vi .bashrc

# 以下を追記
alias ls='ls -FN --color'
alias la='ls -aFN --color'
alias ll='ls -lFN --color'
alias rm='rm -i'
alias cp='cp -pi'
alias mv='mv -i'

追記後、下記のコマンドで反映
source .bashrc

bash_profileにも反映し、ログイン時に自動で反映されるようにする。

※aliasについては色々な宗教宗派があるみたいですが自分の場合、「ll」を多用するので、それだけ入れておきました。

cd ~/
vi .bash_profile

# 以下を追加
source ~/.bashrc

まとめ

ラズパイの初期設定と言いつつ殆どがLinuxインストール後にすることですね。
AWSやVPSでたびたびLinuxOSの設定を仕事・趣味でしていますが、この記事で書いたことは毎回ググっています。
少し長くなりましたが参考になれば幸いです。

初期設定もまだまだ書くことありますので、時間があれば第2段、第3段と書いていこうと思います。
ラズパイ3台買ったのはKubernetesを使ってみたかったのも理由のひとつなので、これも時間があれば記事にします。

冒頭にも書きましたが他にしたほうが良い書紀作業がありましたらコメントで教えて下さい!
よろしくおねがいします。