Raspberry Pi 3インストールから初期設定まで
インストール
今回は,2017-04-10-raspbian-jessie-lite.img
を使用しました.
各自公式からダウンロードしてきてください.
(追記) raspberry-pi-imager を使うと SD へのインストール周りはかなり簡単にできました
raspberry-pi-imager のインストールは以下のコマンドから。 操作方法は割と直感的だったので省きます。(もしわからなければ別途調べてください)
$ brew install --cask raspberry-pi-imager
該当SDの確認
$ diskutil list ... /dev/disk4 (internal, physical): #: TYPE NAME SIZE IDENTIFIER 0: FDisk_partition_scheme *31.0 GB disk4 1: DOS_FAT_32 RASPBIAN 31.0 GB disk4s1
該当のSDを見つけます.
SDのフォーマット
$ diskutil eraseDisk MS-DOS RASPBIAN /dev/disk4 ... Finished erase on disk4
RASPBIAN
の部分はフォーマット後の名前なのでお好みで設定してください
SDへ書き込み
以下のコマンドを実行し,SDに書き込む.(10分ほど?適当に放置して待ちましょう)
$ diskutil unmountDisk /dev/disk4 $ sudo dd if=path/to/file/2017-04-10-raspbian-jessie-lite.img of=/dev/disk4 bs=1m
以上を行うと準備は完了なので,RaspberryPiに挿入して電源を入れましょう 最初はWifi等の設定を行うまでネットに接続できないので,LANケーブルを挿しました.
初期設定
初期のパスワード
user name: pi password: raspberry
rootのパスワード設定
sudo passwd root
以下からはrootで行う
$ su - password
Update
とりあえず最新にします
$ apt-get update && apt-get upgrade $ apt-get install vim # 後々の設定ファイル編集のために入れておく
E: Broken packages
と言われて失敗するとき ↓
update / upgrade fails on older Raspian Installation - Raspberry Pi Forums
sudo apt full-upgrade sudo apt dist-upgrade
Wifiの接続
SSIDとパスワードを設定ファイルに保存しておきます. このファイルはパスワードが記載されているので,外部に公開しないようにしましょう.
$ export PASSWORD=password $ export SSID=wifi-ssid $ wpa_passphrase $SSID $PASSWORD >> /etc/wpa_supplicant/wpa_supplicant.conf
(追記)
/boot/
以下に wpa_supplicant.conf というファイルをおいておけば起動時にいい感じにしてくれる
country=JP ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="{Wi-FiのSSID}" psk="{Wi-Fiのパスワード}" scan_ssid=1 }
Time Zoneの設定
とりあえず日本時間に変更します.
$ raspi-config
「4 Localisation Options」-> 「I2 Change Timezone」->「Asia」-> 「Tokyo」
or
$ sudo timedatectl set-timezone Asia/Tokyo
SSHの有効化
デフォルトではSSHで接続できないので,設定をONにします.
$ raspi-config
「5 Interfacing Options」-> 「P2 SSH」->「Yes」
(追記)
/boot/
以下に ssh
という空ファイルをおいておけば起動時にいい感じに ssh を有効化してくれる
接続先IPは以下で確認
$ ip route default via 192.168.1.1 dev wlan0 metric 303 192.168.1.0/24 dev wlan0 proto kernel scope link src 192.168.1.42 metric 303
今回の場合は192.168.1.42となります.
$ ssh pi@192.168.1.42
で接続できるはずです
おまけの設定
RaspberryのIPを固定する
上記の設定で,SSHすることができましたが,このままだとRaspberry piを再起動した際に,IPが変わってしまいSSHできなくなる可能性があります. そのたびにディスプレイを挿して,IPを確認して...という作業はめんどうなので,IPを固定化します.
上記の例では,サブネットマスクが,192.168.1.0/24
なので,左から24bit分の192.168.1
までがネットワークアドレスであり,これ以降の8bitは好きに使用して良いことがわかります.
好きに設定はできますが,特にこだわりがなければ,とりあえず今のIP( 192.168.1.42
)で固定すればよいかと思います.
以下のファイルを編集し,設定を追記していきます.
$ sudo vim /etc/dhcpcd.conf
以下の設定を追記
interface wlan0 static ip_address=192.168.1.42 static routers=192.168.1.1 static domain_name_servers=192.168.1.1
これで固定化できました. 再起動してもIPが変わらないことを確認してください.
SSHのポート変更
22番のままだと悪意のあるユーザに推測されやすいためセキュリティの面で不安があります.
変更する際は,/etc/ssh/sshd_config
のPort 22を変更するとSSHの接続Portを変更できます.
ユーザの追加と削除
デフォルトのpi
ユーザ名はすべてのRaspberry piで共通なので,悪意のあるユーザに推測されやすいです.(パスワードも共通なので,変更する必要があります)
外部からアクセスできるようにする際は,ユーザを新たに作り直して,攻撃されにくくしておくとよいです.
ユーザ(hoge)の追加
$ sudo adduser hoge $ sudo gpasswd -a hoge sudo
piユーザの削除
$ sudo userdel pi
公開鍵認証
パスワードでなく,公開鍵認証でログインできるようにします. ローカルのマシンで.以下のように,鍵を生成しRaspberry piに送信します.
$ ssh-keygen -t rsa $ scp -P [port_number] ~/.ssh/id_rsa.pub [username]@[ip]: $ ssh -P [port_number] [username]@[ip]
raspberrypi側で,送られてきた鍵を登録します.
$ mkdir .ssh $ mv ~/id_rsa.pub ~/.ssh/authorized_keys $ chmod 600 ~/.ssh/authorized_keys $ sudo service ssh restart
ローカルのマシンの別ターミナルで確認します.
$ ssh -p [port_number] -i ~/.ssh/id_rsa [username]@[ip]
うまくsshできることが確認できたら成功です.
公開鍵認証でログインできるようになったので,パスワードでログインできないようにして,セキュリティを高めます. raspberry側で,設定ファイルを以下のように変更します.
$ sudo vim /etc/ssh/sshd_config
-
の部分を +
になるように書き換えます.
- # PasswordAuthentication no + PasswordAuthentication no
ssh configの設定
SSHする際に,ipなど,入力するコマンドが長くて面倒なのでSSHコマンドを簡略化します.
ローカルのマシンで,~/.ssh/config
に以下を追記.
Host raspberry Hostname [ip] Port [port_number] User [username] IdentityFile ~/.ssh/id_rsa
これを記載することで,sshを簡略化することができます.
$ ssh -p [port_number] -i ~/.ssh/id_rsa [username]@[ip] # 通常はこれ $ ssh raspberry # configを設定することで簡略化できる
firewall
セキュリティを高めるために,無駄なportにはアクセスできないようにしておきます.
$ sudo apt-get install ufw -y $ sudo ufw default deny $ sudo ufw allow 80/tcp $ sudo ufw allow [ssh port_number] # SSH用のポートは開けておく $ sudo ufw enable
自動ログイン解除
sudo vim /etc/lightdm/lightdm.conf
autologin-user=pi
の部分を削除する or コメントアウトする
これでうまくいかない場合は raspi-config
からの設定も必要 (Boot Options)