DebianのaptでリポジトリのGPG鍵が警告を出してくる件

OctoPrintのラズパイ用ディストリビューションのOctoPiのベースになるRaspbianがBullseyeからBookwormにアップデートされて新しいイメージが配布された。今回からデフォルトのユーザーやWiFiの設定がRaspberry Pi Imagerのオプションから変更できるようになったので、早速新しいイメージをつかってOctoPi環境を構築しなおした。

ところが、いつも通りapticronで毎日アップデートがあったパッケージを報告させるようにすると、毎度以下のようなエラーが送信されてくるようになった。

W: http://raspbian.raspberrypi.com/raspbian/dists/bookworm/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.

Debianはaptで参照するリポジトリのGPG鍵をapt-keyによってこれまで管理してきたが、これはユーザーが追加したリポジトリの鍵をどんどん勝手に追加する仕様だった。万が一、不正なGPG鍵が追加されるとシステムが不正なリポジトリを信用してしまう可能性があるので、今後はapt-keyの鍵リングにDebian公式でない鍵が追加されていると警告を出して、ユーザーが追加する鍵はユーザーが別の場所できっちり自分で管理することを推奨することになったとのこと。

とはいえRaspbianの公式のリポジトリの鍵が不明なユーザー追加の鍵として扱われているのはなんだかなあと思わなくもないが、警告が毎度送られてくるのも面倒なのでapt-keyの鍵リングに格納されているraspbian.raspberrypi.comのGPG鍵を分離することにする。

まずは不正な鍵がどれかを抽出する。

$ apt-key list | grep -A4 “trusted.gpg$”

すると公式でない鍵の情報が以下のように出力される。

pub rsa2048 2012-04-01 [SC]
A0DA 38D0 D76E 8B5D 6388 7281 9165 938D 90FD DD2E
uid [ 不明 ] Mike Thompson (Raspberry Pi Debian armhf ARMv6+VFP) mpthompson@gmail.com

必要なのは鍵のIDなので16進の数字がずらずら並んでいる最後の8桁を抽出する。この場合は90FDDD2Eがこの鍵のIDだ。鍵IDが分かればこの鍵を抽出することができる。一旦この鍵は/tmpに書き出すことにする。鍵の名前はどのリポジトリの鍵かわかるようにFQDNをファイル名に含む形にしておいた。

$ sudo apt-key export 90FDDD2E | sudo gpg –dearmor -o /tmp/raspbian.raspberrypi.com.gpg

鍵が抽出できたら、fileコマンドを使って正しくGPG鍵として認識できるものであるか確認しておこう。

$ file /tmp/raspbian.raspberrypi.com.gpg

問題がなければfileコマンドの出力結果でこのファイルに含まれる内容がGPG鍵であることを表示してくれるはずだ。抽出された鍵が有効であることを確認した後に、apt-keyの鍵リングからこの鍵を削除する。

$ sudo apt-key del 90FDDD2E

最後にユーザーがリポジトリの鍵を追加するべきディレクトリである/etc/apt/trusted.gpg.d/に抽出した鍵を移動させよう。

$ sudo mv /tmp/raspbian.raspberrypi.com.gpg /etc/apt/trusted.gpg.d/

これでapt updateを行ってもapt-keyを使うなという警告が表示されなくなるはずだ。

コメントを残す

This site uses Akismet to reduce spam. Learn how your comment data is processed.