ちょっと前にラズパイのアップデートで軽く炎上してましたね。
要するに
あ…ありのまま 今 起こった事を話すぜ!
「おれは、OSのアップデートをしたと思っていたら MSのリポジトリがadd-apt-repositoryされていた」
な… 何を言っているのか わからねーと思うが
おれも 何をされたのか わからなかった…
頭がどうにかなりそうだった… 催眠術だとか超スピードだとか
そんなチャチなもんじゃあ 断じてねえ
もっと恐ろしいものの片鱗を 味わったぜ…
てことのようです。
MSのリポを追加したこと自体は、VS codeを公式イメージの配布物に含めるっていう方針のようなので 新規に配布されるイメージには勝手にやってくれりゃ良いだろうと思うんですが、 アップデートの時にこっそりやるのはマズいですね。
ところで、こんなこともあろうかと思って昨年末にRaspberry Pi ImagerからOSイメージを書き込んだ後、放置してたSDカードが手元ににあります。 今日は、ラズパイ4にこのカードを挿してセットアップした後、例のアップデートがどういうように行なわれるのかを見てみようと思います。
SDカードにOSを書き込むところまではこちらの記事を参考にしました。
手順は簡単なんですが、私の環境ではいくつかトラブルがありました。
1つめは、ダウンロードしたRasberry Pi Imagerが壊れていたというもので、インストールしようとすると次のエラーが出ました。*1
これは、単純に再ダウンロードすれば解決しました。
もう1つは、OSイメージのダウンロードに時間がかかりすぎてタイムアウトするというものですorz
OSイメージを取得するのに、ミラーサイトを使わずに本家まで取りに行っていたようで、だいたい2〜3時間かかってました。 最初はノートPCで作業をしていたので、気付いたらスリープして接続が切れてエラーになってました。
今は改善されているようですが、当時はImager(10数MB)のダウンロードにも10分以上かかってたので、配布サーバに問題があったんでしょうね。
さて、無事にSDカードが用意できたということにして、ラズパイのセットアップを進めていきます。
まずは、キーボードとディスプレイ、電源のみを繋いだ状態で(SDカードは挿さずに)起動してみます。
起動途中で止まって次の画面*2が表示されていれば、とりあえずOKです。
改めて、SDカードを挿入して起動します。*3
起動すると、デスクトップが表示されて、「(セットアップが)もうちょっとだけ続くんじゃよ」と表示されたダイアログが出ます。
この後、次の順に設定画面が表示されます。
最後に、次のようなダイアログでアップデートする?と聞かれるので[Next]をクリックすると特に何も表示されずにアップデートが始まります。
アップデートが始まってから慌ててaptのリポジトリ関係の状態を調べたところ、アップデート前の状態ではMSのリポジトリは入っていませんでした。
アップデート終了後、この時点でも特に内容は表示されずに単にアップデートできたよとだけ言われます。なお、この後[OK]をクリックすると再起動されました(そこはダイアログに書いといてほしいw)
で、再起動後のリポジトリ設定は次のとおりで、ファイルは追加されているけどコメントしか残ってませんでした。
というわけで、確かに特に確認する間もなくアップデートされますが、現在はVS code用のリポは追加されないようになっているようですね。*5
引き続きセットアップを続けていきましょう。
設定アプリっぽいものを立ち上げて
- piユーザのパスワード変更
- sshの有効化
- カメラの有効化(必要な人だけ)
と変更した後、求められるままに再起動します。
再起動したらコマンドプロンプトからip address
してIPアドレス(この例では192.168.0.22)を確認して、
PCからssh pi@{IPアドレス}
でログインできるか確認しましょう。
% ssh pi@192.168.0.22 The authenticity of host '192.168.0.22 (192.168.0.22)' can't be established. ECDSA key fingerprint is SHA256:QyiNjok1ZCVBPTCVTeSV4nBFu1B5U1eh2fmdyktPLMc. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '192.168.0.22' (ECDSA) to the list of known hosts. pi@192.168.0.22's password: Linux raspberrypi 5.10.17-v7l+ #1403 SMP Mon Feb 22 11:33:35 GMT 2021 armv7l The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Wed Mar 24 12:29:23 2021
こんな感じでパスワードでログインできるのを確認したら、公開鍵認証に切り替えましょう。
まずは、ログインした先でauthorized_keysファイルを編集し、コピペでPCの公開鍵を登録します。
> mkdir .ssh > vi .ssh/authorized_keys > chmod go-r .ssh/authorized_keys
ここまできたら、PCで別のターミナル画面を開いて公開鍵認証でログインできるか確かめます。
先程と同じようにssh pi@{IPアドレス}
して、パスワードを聞かれずにログインできれば大丈夫です。
続けて、パスワードログインを無効化するために、/etc/ssh/sshd_config
を編集してPasswordAuthentication
をnoにし、sshdを再起動ます。
> sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config > sudo systemctl restart sshd
最後に、パスワード認証が無効になっているか確認するために、公開鍵認証を無効にしてログインを試してみます。
% ssh -oPubkeyAuthentication=no pi@192.168.0.22 pi@192.168.0.22: Permission denied (publickey).
無事にログインできませんでした。
長くなってきたので、一旦この辺で終了します。