KuriKumaChan’s diary

Kuri ちゃんと Kuma ちゃんの飼い主の独り言

Raspberry Pi OS Lite を「ssh 接続のみ」前提で導入したらデフォルトユーザーが削除されていて慌てた話

アマチュア無線の試験勉強から始まって電気/電子工作に興味を持ち、arduino uno や Raspberry Pi pico で スタンドアロンのお遊びをしていたのだけれども、やっぱりネット接続が必要だなと思い Raspberry Pi Zero WH を調達して OS を導入したのですが、最新版の Raspberry Pi OS からデフォルトユーザーの
user=pi、password=raspberry
が削除されていた
ため、ssh 接続しか考えておらず HDMI 接続の準備が無いためローカル作業ができずに慌てた、と言う話です。

2アマ試験勉強中に買った Arduino UNO のスターターキット → Raspberry Pi pico

実はまだ最後までは遊んでいないのですが、去年の年末に Arduino のお勉強キットを買って 2アマの試験勉強の合間 (?) にあれこれ試していました。Arduino はオープンソースの H/W のため安い中華互換機がさらに安く手に入ります。私は Amazon で評判の良い elegoo のキットを買って遊んでいました。
5,000円もしないキットですが、これはこれで結構楽しめます。19のレッスン(課題)が一応日本語でガイドされており、センサーを読み取ったりサーボモーターをコントロールしたりと色々な接続デバイスがコントロールできることを堪能できます。c 言語なので初めての方には精神的敷居が高いかもしれませんが、使うロジックは決まったものばかりなので、コピペでもなんとかなります。ここでは基本的に GPIO (General Purpose IO) と言う汎用の入出力ピンを通じて色々コントロールできるんだな、と学ぶことができます。

しばらくするとネットワーク接続もしたくなり、普通のつまり OS (Raspberry PI OS) を使う標準の Raspberry Pi を買おうかと思ったのですが、これらのシリーズが半導体不足のせいか世界的に市場/店頭からすっかり消えてしまっています。しかし OS 無しのいわゆるマイコン、つまり Arduino と同じレベルのバージョンの Raspberry Pi pico はまだ在庫が結構あるのでしばらくこれで遊ぶことにしました。

pico は乱暴に言うと Arduino と同じ位置付けです。OS は無いので特定のデバイスを制御するためのもの、と考えれば間違いなさそうです。ただし Arduino UNO より安く小さく、Python が使えると言うことで、より敷居が低くなっています。 私は海外から購入したのですが、500円台で買えるので壊してしまうことも考えてまとめていくつか買ってみました。

もちろん Arduino のようなスターターキットもありますが、互換性品では無いためか (?) ちょっとだけ Arduino より高めですがそれでも 5,000円とちょっとです。一度 Arduino を経験した人であれば特にキットなどは不要でネット情報だけで色々遊べると思います。

やっぱりネットワーク接続したい

pico で遊んでいると、やりたいことは色々浮かんできて「やっぱり IoT = ネットワーク接続が不可欠だ!」と思うようになりました。やろうと思えば Arduino でも pico でもESP32 など wifi や Bluetooth 接続できるモジュールを使えば AWS IoT などに接続できる様なのですが、あれもこれも勉強するのは大変なのでネットワーク部分はサクッと繋げる OS がある Raspberry Pi にしたくなります。しかし上に書いたように本当に海外もネット通販も含めて Raspberry Pi シリーズが枯渇しています。そんな中でチラッとみたヤフオク。OS のある Raspberry Pi シリーズで最小の Zero WH が 3,000円弱で出品されています。これでももともとの倍程度の値付けになっている様ですが、まぁさほど財布の負担なく買える範囲。しかもどうせそんなに負荷の高い使い方はしないので、非力な CPU が載っている Xero WH で問題無いと考え即決で入手。

ディスプレィとキーボードなしで OS を導入してみるが、デフォルトユーザーが削除されているので操作できない!

やりたいことは 「pico をリモートで使う」イメージ

arduino や pico で実際に何かのセンサーをコントロールするとなると、 arduino なり pico 本体もセンサーの側に置く必要があります。そうなると机の上には無いマイコンをコントロールできる様にしたいと言うのが漠然とした願望。まぁとりあえず wifi 接続した Raspberry Pi Zero を ssh 接続できる様にまでしておけばあとはなんとかなるだろうと考え、下の記事を参考に初期設定作業(要は OS の導入)を進めます。ssh 接続のみと言うことはキーボードもディスプレィも接続しないで使うので、Zero にディスプレィを HDMI 接続するための mini to 標準の変換アダプターも準備していません。

半年前の記事を参考に OS セットアップ作業を終えて本体を boot した。

101010.fun

上の記事は半年前のもの (2021/09) なのでそうは変更点もないだろうと思い作業を進めます。ざっくり説明すると以下の順番で進めます。

  1. Raspberry OS をダウンロードして SD カードに準備する。
  2. Mac から 上記の SD カードに ssh 使用のためのファイル作成と wifi 接続の構成ファイルを作成する。
  3. SD カードを Raspberry Pi Zero WH に装着して USB 5V 給電すれば Raspberry PI OS が起動する。
  4. wifi ルーターで Raspberry Pi の接続を確認する。
  5. wifi 経由で デフォルトユーザーで ssh 接続する。<今回の目標はここまで>

上で紹介した記事がわかりやすかったこともあり、家の Wifi ルーターに Raspberry Pi Zero WH が自動接続できたところまではすぐに確認できました。

デフォルトユーザーの "pi" でログインできない!

で、最後に Mac から ssh で接続できたら今回はひとまずおしまいにしようと思ったのですが、上の記事にも書いてあるデフォルトのユーザー名「pi」で ssh 接続することができません....

少し前にラズパイ関連のニュースを読んだ記憶がある!

そういえば少し前にネットニュースで読んだ記事を思い出しました。

japan.zdnet.com

「Raspberry Pi OS」の最新リリースで、デフォルトのユーザー名が削除されている。
 これまで、デフォルトのユーザー名「pi」とパスワード「raspberry」が設定されており、新たなPiデバイスの設定が簡単に行えるようになっていた。その一方で、広く普及しているPiデバイスは、遠隔地の攻撃者によるパスワードスプレー攻撃などで容易にハッキングされる危険性があった。

ま、IoT デバイスのセキュリティ確保のためには良いことだと思いますが、

Raspberry Pi OSの最新リリースでは、デフォルトのユーザー名「pi」が削除され、新たに書き込まれたRaspberry Pi OSイメージを初めてブートする際、新しいウィザードでユーザー名を作成する必要がある

ダメじゃん!ssh 接続前だとディスプレィ接続しないと boot したって何も見えない!
「そうかぁ、ssh 接続だけで使うとしても初回の boot の時だけはディスプレィとキーボードを繋がなければならないんだ...」
と気落ちしてAmazonで安い mini HDMI の変換アダプターをポチって寝ようとしました。

最新の Raspberry Pi OS ではダウンロード前に事前設定を行う様になっていた (Raspberry Pi Imager )

しかし、普通に考えた時に、通常はディスプレィもキーボードも使わない用途に用いる際に、わざわざ初回 boot 時だけディスプレィなどをつないで設定を行うのもめんどくさいですから、何かディスプレィなしでユーザー設定を行う方法があるのでは無いかと考え調べてみるとちゃんとありました。

nw-electric.way-nifty.com 今回初めて Raspberry Pi OS をダウンロードしたので、今までどうであったのか自分で経験したことはありません。しかし OS ダウンロードサイトが記事で紹介されているものと雰囲気が異なります。

https://www.raspberrypi.com/software/ のトップ
以前はサイトから直接 OS を選択してダウンロードしていた様ですが、今は "Raspberry Pi Imager" と言うアプリをまずダウンロードして、そのアプリをパソコンで操作して必要な OS をダウンロードする仕組みに変わっています。私自身この Imager を使って SD カードに OS を作成していたのですが、上の記事を読むと私がやっていない事前設定手順があるではないですか!

Imager 起動画面の右下の歯車ボタンを押して事前設定ができる

OS を SD カードに準備した後パソコンで SD カードを編集するのではなく、ダウンロード前に Imager で設定項目を指定しておくようになっていたのです! なるほど! これは便利です。事前設定して SD カードに OS をダウンロードすれば、そのまま SD カードを Raspberry Pi に挿して電源を入れればそのまま設定済みで起動します。私の場合で言えばすぐに wifi 接続したので、設定してあったユーザーで ssh 接続も一発!


と言うことで、ネットワーク接続できる Raspberry Pi は準備できたので、あとは NAS 接続やクラウド接続の方式を考えたり、Arduino や pico に戻ってデバイスの制御を練習したり、しばらくまた楽しめそうです。