Raspberry Piの初期設定まとめ

新しいことをやろうと思い、ラズパイを手に入れました。

とりあえずこれをやっておけば問題ないんじゃないかと思う初期設定をまとめます。

Wi-Fiの設定

まずはWi-Fiの設定。ラズパイ起動後に早速ターミナルを開いて下記を実行。

sudo sh -c "wpa_passphrase SSID PASSPHRASE >> /etc/wpa_supplicant/wpa_supplicant.conf"

# SSIDは接続対象のWi-FiのSSID
# PASSPHRASEは接続対象のWi-Fiのパスワード

wpa_passphrase SSID PASSPHRASE で暗号化されたパスワード情報が表示されるので、それを wpa_supplicant.conf にリダイレクトしています。

接続対象のWi-Fiがステルスモードの場合は scan_ssid=1 を追記する必要があるので、のちに wpa_supplicant.conf をviとかnanoで開いて追記します。

...
network={
    ssid="ssid"
    #psk="password"

psk=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    scan_ssid=1
}

設定後、 sudo reboot で再起動。Wi-Fiが無事つながればOK。

パッケージのアップデートとVimのインストール

Wi-Fiに繋がったらとりあえずアップデートします。ついでにVimをインストール。

apt update -y
apt install -y vim

SSHの設定

デフォルトだとsshが無効になっているので、GUIを操作して設定ページへ行き、sshを有効にします。

Preferences→Raspberry Pi Configurationと進み、Interfacesタブを開いてSSHを有効に変更。

次に、Systemタブを開いてHostnameを好きな名前に変更。設定後に再起動。

再起動後にsshできるか確認。

ssh py@hostname.local

SSH用ユーザの追加と権限設定

SSH用に新規ユーザを作成します。

# ユーザ追加
sudo adduser hogehoge

# 作成したユーザのディレクトリを確認
ls /home

# piユーザと同じ権限を付与
sudo usermod -aG sudo,adm,dialout,cdrom,audio,video,plugdev,games,users,input,netdev,gpio,i2c,spi hogehoge

公開鍵認証の設定

パスワードではなく公開鍵認証でSSHできるよう設定します。

接続元のPCでキーペアを作成

ssh-keygen -t rsa

再びsshして公開鍵を登録。

# authorized_keysファイルの作成
sudo touch ~/.ssh/authorized_keys

# vimとかでauthorized_keysを開いて公開鍵をコピペ
sudo vim ~/.ssh/authorized_keys

# パーミッション変更
sudo chmod -R 700 ~/.ssh

一度抜けて、公開鍵認証できるかチェック。

ssh -i ~/.ssh/id_rsa hogehoge@hostname.local

sshコンフィグの設定

秘密鍵の名前を変えたり、サーバーごとに鍵を用意している場合など、毎回コマンドで秘密鍵を指定するのは大変かと思います。なのでコンフィグ設定します。

# 接続元PCでconfigを開いて
sudo vim ~/.ssh/config

# 下記のような感じで追記
Host hogehoge
  HostName hogehoge.local
  User hogehoge
  Port 22
  IdentityFile ~/.ssh/id_rsa

デフォルトユーザのssh禁止

デフォルトユーザ(pi)のsshを禁止にします。

sudo su -
echo "DenyUsers pi" >> /etc/ssh/sshd_config
systemctl restart ssh
systemctl status ssh

sshdの待ち受けポート番号変更

Listen Portを修正します。

echo "Port 54321" >> /etc/ssh/sshd_config
systemctl restart ssh
systemctl status ssh

まとめ

ラズパイは想像以上にLinux PCでした。kazuphさん曰く「Raspberry Piではじめる機械学習」という本が良さそうなので、これで遊びながら機械学習に少しずつ触れていこうと思います。