対象の機材とOSはこちら
・Raspberry Pi 3 Model B
・OS Ver :Raspbian 10 Buster(2019-07-10-raspbian-buster)
今回は、ヘッドレスインストール(モニタ、キーボード、マウスをつながない状態でのインストール)の確認をします。
Rasbian OS
イメージ書き込みツール
SDカードとフォーマッター
LAN環境 無線LAN
シリアルアダプター
SDカードは、16GBとしました。
ラズベリーパイの本家サイト https://www.raspberrypi.org/downloads/raspbian/ からOSをダウンロードします。
現在のVerは、Debian(Raspian) 9 Strech
OSイメージをSDに焼くので、ZIPファイルを選びます。
OSファイルは、3種類。
フル版 Raspbian Stretch with desktop and recommended software
通常版 Raspbian Stretch with desktop
Lite版 Raspbian Stretch Lite
今回は通常版をダウンロード。
SDカードのフォーマットは、windows標準でも出来ますが、SDに最適化したフォーマットになります。
イメージの書き込みには、Etcherを使用しました。
Etcherの本家サイト "https://etcher.io/"からダウンロードしてインストール。
Etcherを起動して、
①イメージファイルの選択->②SDドライブの指定->③書き込みボタンを押す。
この3ステップで完了です。
書きこんだSDカードに以下のファイルを追加します。
・起動時SSHを有効にするため、サイズが0Bのsshファイルを作成してSDにコピー
・無線APに接続するため、wpa_supplicant.confを作成してSDにコピー
wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
ap_scan=1
update_config=1
network={
ssid="*******"
psk="*******"
scan_ssid=1
key_mgmt=WPA-PSK
}
・シリアルでコンソール接続するため、config.txtの最下行に追記して保存。
enable_uart=1
以上で準備は完了、ラズパイにSDカードをセットして電源を投入します。
緑のアクセスランプが消灯したら、起動完了です。
このまま、HDMIモニタを繋げば、初期設定するだけで使えるのですが、通常はSSHコンソールを使うことを前提としてセキュリティ設定などをしていきます。
無線LANは、wpa_supplicant.confに設定したAPに接続できているはずです。
有線でも無線でも、windows10とMac等は、mDNSに対応しているので、ホスト名 raspberrypi.localでSSH接続が可能です。
・万一接続できない場合は、シリアル接続でIPアドレスを確認します。
Tera Tarmで、comポートを選んで接続。ボーレートは115200に設定。
ENTERキーを一回押すとログインメッセージが出るので、ユーザー:pi、パスワード:raspberryでログイン
まず基本的なセキュリティ設定をします。
ユーザー"pi"のパスワードを変更し、通常使うユーザを設定。
piのパスワード変更
$sudo passwd pi
通常使うユーザーとして、新しいユーザーを作成。
$sudo adduser piadmin
新しいユーザーがsudo NOPASS できるようにする。
$sudo nano /etc/sudoers
以下を追記
piadmin ALL=(ALL) NOPASSWD: ALL
ユーザpiがNOPASSWDでsudoできないようにする
$sudo nano /etc/sudoers.d/010_pi-nopasswd
#pi ALL=(ALL) NOPASSWD: ALL コメントアウト
ここでログアウト。
$exit
新しいユーザーでログインし、SSHを公開鍵認証にします。
鍵の作成
rsa 4096bitのカギを作成します。コメントの -C の次の文字列は任意の文字列
$ssh-keygen -t rsa -b 4096 -C "x***@***.jp"
保存場所を聞いてくるのでそのままENTER
パスフレーズを入力
~/.ssh の中に id_rsaとid_rsa_publicが生成されました。
公開鍵の名前を変更してパーミッションを変更します。
$mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
$cd .ssh
~/,ssh $chmod 600 ~/.ssh/authorized_keys
teratermのSCPで、秘密鍵をPCに転送します。
teratermで、ログイン。
公開鍵認証のみ接続可能にする
SSHの設定をパスワードによる認証は拒否、公開鍵認証を許可にします。
$ sudo nano /etc/ssh/sshd_config
ChallengeResponseAuthentication no
PasswordAuthentication no
編集後にsshdをリスタート
$ sudo /etc/init.d/ssh restart
これで秘密鍵を持たないPCからは接続できなくなりました。
お約束のアップデート。
$ sudo apt-get update
$ sudo apt-get install samba
smb.confの最下行に以下を追加
$sudo nano /etc/samba/smb.conf
[share]
path=/home/piadmin/
readonly=no
browsable=yes
guestok = yes
force user = piadmin
デフォルトだとOSが停止しているかどうかが判断しにくいので、電源LEDを1秒点滅に変更します。
シャットダウンすると電源LEDが点灯状態になります。
$ sudo nano /boot/config.txt
最下行に以下を追記
dtparam=pwr_led_trigger=timer
リブート
sudo reboot
デフォルトでは、ユーザpiでDesktopが立ち上がっています。HDMIでモニタを繋げばすぐ使えます。
しかし、Desktopは重たくあまり使うシーンがないのですが、GUIでの設定のほうが便利な時もあるので残しました。
VNCを有効にし、解像度を設定します。
$ sudo raspi-config
VNC をイネーブルにします。
7-A5 Resolution で解像度を設定し手再起動。
PCからVNCViewerで接続
初めての接続時は、初期設定を聞いてきます。
設定済みのメニューはスキップ。
ロケーションを日本にします。
最後にアップデート。
セキュリティ対策は甘々ですが、実験室の中なので、以上で初期設定は終わりとします。