Raspberry Pi OS Lite をインストール後に行うべき初期設定
普段使っている Raspberry Pi4 Model B の構成がどうもおかしくなってしまったようで、久々に Raspberry Pi3 Model B を動かそうと思い立ち、その際に行った初期設定を備忘録として記載しておきます。
誰かの参考になれば幸いです。
Raspberry Pi OS の入手
ここ最近? Raspbian OS から Raspberry Pi OS に名称が変わったらしいですね。
Download Raspberry Pi OS for Raspberry Pi
今回は Raspberry Pi OS (32-bit) Lite
という、GUIを提供しない軽量版のOSを利用していきます。64bit版もありますが、まだベータ版という位置づけなので、使用しないでおきます。
Raspberry Pi OS をマイクロSDカードに焼く
自分はOSのイメージは balenaEtcher を利用して焼いています。
balenaEtcher - Flash OS images to SD cards & USB drives
他のOSイメージの作成と変わらないので、具体的なOSのイメージの焼き方は省略します。
SSHの有効化
Raspbian OS はデフォルトだとSSHが有効になっていないので、 boot
ボリュームに ssh
という拡張子無しのファイルを作成。中身は空のままで問題ないです。
Raspberry Pi起動 & IPアドレスを探す
マイクロSDカードを Raspberry Pi 本体に差し込んで電源投入、数分お茶を飲み Raspberry Pi の準備が整ったと思われるタイミングでSSH接続で必要なIPアドレスを探していく。
当方はWindowsでSSH接続するためのIPアドレスを知りたいので、コマンドプロントか Windows Power Shellより以下コマンドを叩く。
PS C:\Users\****> arp -a
インターフェイス: 192.168.1.9 --- 0x5
インターネット アドレス 物理アドレス 種類
192.168.1.1 **-**-**-**-**-** 動的
192.168.1.5 **-**-**-**-**-** 動的
192.168.1.6 **-**-**-**-**-** 動的
192.168.1.25 dc-a6-32-8f-d9-c3 動的
192.168.1.26 b8-27-eb-96-1d-b5 動的
192.168.1.255 ff-ff-ff-ff-ff-ff 静的
224.0.0.22 **-**-**-**-**-** 静的
224.0.0.251 **-**-**-**-**-** 静的
224.0.0.252 **-**-**-**-**-** 静的
239.255.255.250 **-**-**-**-**-** 静的
255.255.255.255 ff-ff-ff-ff-ff-ff 静的
# 以下省略……
arp -a
で叩くことで同一のネットに繋がっている機器のIPとMACアドレスが確認できる。b8:27:e1
や dc-a6-32
が先頭の機器が Raspberry Pi と判断することができる。詳細はQiitaでまとめてくださっている方がいるので、そちらを参照していただければと思います。
Raspberry Pi 4 のMACアドレスの範囲が変わったぞ - Qiita
自分のネットワーク環境の場合、 192.168.1.25
が Raspberry Pi4、 192.168.1.26
が Raspberry Pi3 であることがわかる。今回は Raspberry Pi3 をセットアップしていくので、こちらのIPアドレスでSSH接続をしていきます。
SSH接続
- Host: 上記で調べたIPアドレス
- User:
pi
- Password:
raspberry
これでSSH接続ができます、ここから Raspberry Pi OS の設定を進めていきます。
Raspberry Pi OS の初期設定
パッケージの更新
セキュリティアップデートもあるはずなので、必ず行っておきましょう。
$ sudo apt update && apt upgrade
Vimをインストール
$ sudo apt install vim
ユーザー pi のパスワード変更
本当は先程の用にMACアドレスから Raspberry Pi を利用していることがバレてしまうため、ログイン試行の標的となりやすいデフォルトのユーザー pi
を削除して新しいユーザーを作ってしまったほうが良いのだろうけど、面倒なのでそのまま利用する。次の手順でパスワードでのSSH接続を拒否しますが、念の為デフォルトのパスワードは変更しておきます。
$ sudo passwd pi
New password:
Retype new password:
passwd: password updated successfully
任意のパスワードを2回を入力して完了。
IPアドレス固定
Raspberry Piが再起動する耽美にIPアドレスが変わってしまう可能性があるので、IPアドレスを固定してしまいます。
$ sudo cp /etc/dhcpcd.conf /etc/dhcpcd.conf.orig # 一応バックアップ
$ sudo vi /etc/dhcpcd.conf
dhcpcd.conf
の末尾に以下のように追記していきます。
+ interface eth0
+ static ip_address=192.168.1.26/24
+ static routers=192.168.1.1
+ static domain_name_servers=192.168.1.1
+ noipv6
interface eth0
は有線か無線かだったり、Raspberry Pi OSのバージョンで変わってくるので ifconfig
コマンドでルーターに接続しているネットワークアダプタを確認してください。
static ip_address
は設定したいIPアドレスを指定、static routers
と static domain_name_servers
はルーターのIPアドレスを指定してください。
保存したら、再起動して指定したIPアドレスで接続できることを確認、出来ていなかったら指定する前のIPアドレスで接続して設定の見直し、それでも接続できなかったら Raspberry Pi をディスプレイとキーボードを直接つないで設定の見直しをしてみてください。
$ sudo reboot
SSHの接続情報を変更する
以下のような変更を加えます
- ROOTでのSSH接続を拒否
- パスワードでのログインを拒否(公開鍵を用いた認証に変更)
- SSHの22からポートを変更する
まずは鍵を生成します、パスフレーズ等問われますが、省略することも可能です。
$ ssh-keygen -t rsa
~/.ssh/
配下に id_rsa
と id_rsa.pub
の2ファイルが生成されているので、 id_rsa
をSSH接続するクライアントPCにSFTPなりで送っておく。
※SFTPでPCに id_rsa
ファイルを送る方法の例としてとして、RLoginというターミナルソフトを用いている場合、 ファイル > SFTPファイルの転送
から簡単にファイルをPCにファイルを取り込むことができる。
その後、今回生成した鍵を authorized_keys
に追加する。同時に秘密鍵もRaspberry Pi側では不要になるので削除を行う。
$ cd ~/.ssh/
$ cat id_rsa.pub >> .ssh/authorized_keys
$ chmod 600 authorized_keys
$ rm id_rsa.pub
最後にSSHの設定を上記で列挙したように変更を加える。
$ sudo cp /etc/ssh/sshd_config ~/ #一応バックアップ
$ sudo vi /etc/ssh/sshd_config
変更箇所
# SSHのポート番号を変更する設定 13行目付近にあるはず、Raspberry Piが使用していないポート番号を選ぶ
# 0~65535から選択、既にRaspberry Piが使用していないポートを選択する、49513~65535のプライベートポートの範囲内が良い気がする
Port 65535
# rootでのログインを許可しない設定 32行目付近にあるはず
PermitRootLogin no
# 鍵認証を用いたSSH接続を許可する(デフォルトでONになってるかも?) 37行目付近にあるはず
PubkeyAuthentication yes
# パスワードを用いたSSH接続を拒否する 56行目付近にあるはず
PasswordAuthentication no
保存して、SSHを再起動します。
$ systemctl restart sshd
上記の操作後、ターミナルは閉じないまま、新しいターミナルソフトを立ち上げて、PCに送った鍵を用いて正常にログインできることを試してからターミナルを任意のタイミングで閉じてください。
※上記を怠ると、SSH接続状態での設定の見直し、修正ができなくなってしまいます。SSH接続ができなくなると、Raspberry Piにディスプレイとキーボードを直接つないで再度設定見直しをするという結構面倒な工程が増えてしまいます。
現在時刻をあわせる
date
コマンドを叩くと恐らく時間がずれていると思われるので、時間を合わせてしまいましょう。
$ sudo apt -y install ntp
$ sudo cp /etc/ntp.conf /etc/ntp.conf.orig
$ sudo vi /etc/ntp.conf
現在時刻を取得するサーバーを変更します。
- pool 0.debian.pool.ntp.org iburst
- pool 1.debian.pool.ntp.org iburst
- pool 2.debian.pool.ntp.org iburst
- pool 3.debian.pool.ntp.org iburst
+ pool ntp.nict.jp iburst
ntpサービスを再起動します。
$ sudo sudo service ntp restart
$ sudo timedatectl set-timezone Asia/Tokyo
date
コマンドで現在時刻があっていることを確認します。
まとめ
以上、自分が実際に行った Raspberry Pi の初期設定でした。
ここまで出来たら Raspberry Pi でやりたいことを初めて良いと思います。