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ではじめる機械学習」という本が良さそうなので、これで遊びながら機械学習に少しずつ触れていこうと思います。