はじめに
Raspberry Pi(以下RPi)からLinuxを触り始めた人も多いと思います。
そのせいなのかわかりませんが、RPi関連の日本の記事はあまりよくない設定を推奨している場合が多々見受けられます。
(あまりよくない設定の記事を最初に書いた人からずっとよくない知識が受け継がれているのだと思うのですが・・・)
なので、きちんとした設定を書こうと思います。
※ちなみに、ここに記載されていることのほとんどは公式のドキュメント(Raspberry Pi Documentation
)を読めば書いてあるので、時間がある人はしっかり公式の物を読みましょう。
今回はRaspberry Pi OS向けに書いています。(2020年5月頃にRaspbianから名称が変更されました)
※特定の人を批判する目的で記載したわけではありません。
開発に最低限必要な物について
開発に使用できるパソコンを持っているという前提で書くと、よく書かれている
- HDMIケーブル
- モニタ
- キーボード
- マウス
は最悪なくてもいいです。RPiはヘッドレスインストールが出来る為、モニタ類がなくても設定は一通り出来るんですね。更にGUIを使用したい場合もVNCなどで繋げればいいです。ただ、完全に必要ないかと言われればそうではなく、リモート接続(OTG接続)が出来なくなった場合にモニタ類を直接繋いで何が原因か切り分けできたりするので持ってれば嬉しいレベルです。
※あまりいないとは思うのですが、Linux初心者の方でRPi上でGUIを使用して開発するぞ!って人や、CLIに恐怖を感じるレベルの人はこれらは持ってた方がいいかもしれないです。余計な躓きから開放されます。
セキュリティについて
よく書かれている
rootパスワードを設定しましょう!
これは嘘です。設定してはいけません。これはあえて設定されていません。設定されていない場合は使用不可となりますが、設定してしまうと使用可となってしまう為です。自らセキュリティ的に脆弱にしています。
ssh有効化について
よく書かれている
mkdir /boot/ssh
これは微妙です。マニュアルには以下のように記されています。
When the Raspberry Pi boots, it looks for the ssh file. If it is found, SSH is enabled and the file is deleted.
google翻訳:Raspberry Piが起動すると、sshファイルが検索されます。見つかった場合、SSHが有効になり、ファイルが削除されます。
しっかりとファイルと記載されていますね。また、ファイルは削除されますとのことなのでディレクトリは削除されません。ゴミが残ります。下記ユニットファイルを参照すればわかります。
[Unit]
Description=Turn on SSH if /boot/ssh is present
ConditionPathExistsGlob=/boot/ssh{,.txt}
After=regenerate_ssh_host_keys.service
[Service]
Type=oneshot
ExecStart=/bin/sh -c "systemctl enable --now ssh && rm -f /boot/ssh ; rm -f /boot/ssh.txt"
[Install]
WantedBy=multi-user.target
これは起動時に実行される為、前述のディレクトリを作成してSSHを有効化する方法の場合、セキュリティ上の理由で後からSSHを無効にした際に再起動するとまたSSHが有効になる、という問題が起きてしまうんですね。
IPアドレスについて
これは別に悪いことではないんですが、もっと簡単な方法がありますよーという紹介です。
よくある記載で、
(SSHする際に)IPアドレスを確認して〜、固定IPアドレスを設定して〜
というのがあると思うのですが、新し目の開発環境であればBonjour(mDNS)を使用してSSHすることができます。
ちなみに以下のような感じで接続します。
root@0ec7cd4678a7:~# ssh pi@raspberrypi.local
おわりに
初学者に人気のコンテンツって、どうしてもアクセス数目当てで適当なことを書く人が多くなるイメージがあります。
何が正しいかをしっかり見極めた上で楽しいLinuxライフを送っていきましょう!