Raspberry Piを買って始めにやったこと
9月に2週間ほどWebエンジニアのインターン[1]に行って、Web業界って楽しそうだなと思った。そこで、勉強も兼ねて簡単なWebサーバを作るべく、インターンで得た給料を使ってRaspberry Pi 3 Model B+を購入した。すると思ったよりも導入に手こずったので、対処策を記そう(体験談含む)。僕と同じような状況の人の助けになれたら嬉しい。
OSのインストール
「用意するもの」
- 普段使っているPC
- Raspberry Pi
- microUSBの電源コード
- MicroSDカード
ラズパイはシングルボードコンピュータであり、動かすためにはOSを導入する必要がある[2]。ラズパイ上で動くOSはいくつかあるが[3]、私は標準的なRaspbianを導入した。以下、導入手順を記す。
- “Download Raspbian” のページにて Raspbian Buster with desktopをダウンロードし、Zipを展開
- Raspbianのイメージファイルが出てくるので、 これをMicroSDに書き込む
- MicroSDをRaspberry Piにセット
- HDMIとキーボードを繋いでラズパイの起動、初期設定を行う
私はイメージの書き込みを簡単に行うものとして”balena Etcher“というものを使った。使用方法は極めて簡単。書き込むイメージファイルと書き込み先(MicroSD)を指定してFlash!ボタンを押すだけ[4]、なんてお手軽なんだろう!
MicroSDにイメージを書き込んだら、Raspberry Piにセット。ヘンな位置にスロットがあるので、しっかり確認しよう(表裏も間違えないで!)。電源を通すとラズパイが起動する。後はHDMIディスプレイとキーボードをつなげて初期設定をすればよい。ただ、私のように、ラズパイのためのキーボードとマウスを用意していない人は次の手順も必要である。
専用のキーボードとマウスを使わずラズパイを触るには
「追加で用意するもの」
- LANケーブル
表題の「専用の」というのは、「購入したRaspberry Piのために用意する」という意味だ。サーバ的用途で使いたいので、セットアップのためだけにキーボードとディスプレイを購入するのは躊躇した。調べるとSSH接続設定をきちんと段取りを踏んで行えばキーボードもマウスも必要ない[5]と知ったので、その方法をシェアしたい。といっても簡単だ。
- イメージを読み込んだMicroSDにsshという名前の空ファイルを作成(sshdの受付けのため)
- MicroSDをラズパイに挿入
- LANケーブルを使ってルーターとラズパイを接続してラズパイを起動
- 自分のPCからラズパイへssh接続
大まかには上のような段取りでラズパイを操作することが出来る。4番についてもう少し詳しく話そう。
ラズパイへのSSH接続
SSH接続をするためには本来はラズパイのIPアドレスが必要だ。pingコマンドを用いて調べてもよいが、以下の方法を取るとIPアドレスを知らなくても接続できることがわかった[5]。
- Bonjour Print Services for Windows または iTunes をインストール
- SSHクライアントを用いてSSH接続
僕のPCにはすでにiTunesが入っていたので、1. を行う理由を調べるのはいいや(^o^)?ってなってしまった。気になる人は各自調べてほしい。
SSHクライアントとして私はMobaXtermを使っている。個人的には扱いやすいのでおすすめしておく。ターミナルを起動したら、デフォルトの設定に従って次のコマンドを打つと接続ができる。
「デフォルト設定」
- ホスト名: raspberrypi
- ユーザ名: pi
- パスワード: raspberry
本来はIPアドレスを入れなければならないが、ホスト名を代わりに入力することでSSH接続を実現しているのだ。
ラズパイのセキュリティ設定
オフライン環境でラズパイを使うならばこのまま使えばいいが、僕はこれを全世界からアクセスできるようにしたい。するとデフォルトの設定のままではユーザ名とそのパスワードが既知だし、rootのパスワード設定もまだ行っていないので、私の知らない間に誰かにデフォルトユーザのpiに入られて乗っ取られる恐れがある。それを回避するために次のことを行った[6,7]。
- ラズパイを最新版へupdate
- rootのパスワード設定
- piと同じ権限を持つ別のユーザの作成
- piの消去
- sshポート番号の変更
やっていることはほぼ全て[7] 初心者向!Raspberry Pi 最低限のセキュリティ設定【所要時間 30分】にかかれているのでそちらを参考にしてほしい。
piの消去がうまく行かない場合、別のroot権限を持つユーザを作成してから次のような操作を行うとよい[8]。
- sudo raspi-config
- Boot Option -> Desktop/CLI -> Consoleを選択してreboot
- sudo が使えるpi以外のユーザにログイン
- userdel -r pi でpiの消去
- sudo raspi-config
- Boot Option -> Desktop/CLI -> Desktopを選択してreboot
ラズパイのホスト名を変更する
最後にラズパイを複数所有したときのために識別ができるようにデフォルトでraspberrypiとなっているホスト名を変更する[9]。
- sudo raspi-config
- Network Options -> Hostname にてホスト名を変更してreboot
References
[1] OPTiMのトップページ
[2] Raspberry Pi 3 Model B+の初回セットアップ(購入から起動まで)
[3] Raspberry Pi で動く様々なOS一覧まとめ13種類!
[4] balenaEtcherでOS「Raspbian」を書き込む [2018年まとめ]
[5] Raspberry Pi をディスプレイ/キーボードなしで初期設定する
[7] 初心者向!Raspberry Pi 最低限のセキュリティ設定【所要時間 30分】
[8] Raspberry piでpiユーザーを消す時に(user pi is currently used by process )が出たときの対処法