Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Raspberry PiのBad Knowledge

はじめに

Raspberry Pi(以下RPi)からLinuxを触り始めた人も多いと思います。
そのせいなのかわかりませんが、RPi関連の日本の記事はあまりよくない設定を推奨している場合が多々見受けられます。
(あまりよくない設定の記事を最初に書いた人からずっとよくない知識が受け継がれているのだと思うのですが・・・)
なので、きちんとした設定を書こうと思います。
※ちなみに、ここに記載されていることのほとんどは公式のドキュメント(Raspberry Pi Documentation
)を読めば書いてあるので、時間がある人はしっかり公式の物を読みましょう。

今回はRaspbian向けに書いています。

※特定の人を批判する目的で記載したわけではありません。

開発に最低限必要な物について

開発に使用できるパソコンを持っているという前提で書くと、よく書かれている

  • HDMIケーブル
  • モニタ
  • キーボード
  • マウス

は最悪なくてもいいです。RPiはヘッドレスインストールが出来る為、モニタ類がなくても設定は一通り出来るんですね。更にGUIを使用したい場合もVNCなどで繋げればいいです。ただ、完全に必要ないかと言われればそうではなく、リモート接続(OTG接続)が出来なくなった場合にモニタ類を直接繋いで何が原因か切り分けできたりするので持ってれば嬉しいレベルです。

※あまりいないとは思うのですが、Linux初心者の方でRPi上でGUIを使用して開発するぞ!って人や、CLIに恐怖を感じるレベルの人はこれらは持ってた方がいいかもしれないです。余計な躓きから開放されます。

セキュリティについて

よく書かれている

rootパスワードを設定しましょう!

これは嘘です。設定してはいけません。これはあえて設定されていません。設定されていない場合は使用不可となりますが、設定してしまうと使用可となってしまう為です。自らセキュリティ的に脆弱にしています。

ssh有効化について

よく書かれている

mkdir /boot/ssh

これは微妙です。マニュアルには以下のように記されています。

When the Pi boots, it looks for the ssh file. If it is found, SSH is enabled and the file is deleted. The content of the file does not matter
google翻訳:Piが起動すると、sshファイルを探します。見つかった場合、SSHは有効になり、ファイルは削除されます。

しっかりとファイルと記載されていますね。また、ファイルは削除されますとのことなのでディレクトリは削除されません。ゴミが残ります。後述するのですがこれだといろいろ不便&セキュリティ上問題があります。

また、これもよくある記載でこっちはマニュアルが悪いのですが1

絶対に拡張子のないsshというファイルにしましょう!(.txtがつかないように!)

みたいなのも微妙です。そんなに気を使わなくていいです。
これはsshを有効化しているユニットファイルが以下のようになっており、ssh.txtでも有効化するようになっている為です。

sshswitch.service
[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ライフを送っていきましょう!


  1. SSH can be enabled by placing a file named ssh, without any extension, onto the boot partition of the SD card from another computer. 

kanchi
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away