Ubuntu 18.04 Desktopで apt updateを実行中に、 公開鍵 の 期限切れ エラーに遭遇。Twitterクライアント Cawbird のレポジトリ参照に使う鍵と分かり、 apt-key を使って 更新 しようとしますが、実はレポジトリにある 公開鍵 も古いままでしたというお話です。
apt update時に署名が無効エラー
apt パッケージマネージャで更新してみると、あまり見慣れぬエラーに遭遇しました。
1 2 3 4 5 |
$ sudo apt update - 略 - ヒット:9 http://download.opensuse.org/repositories/home:/IBBoard:/cawbird/xUbuntu_18.04 InRelease エラー:9 http://download.opensuse.org/repositories/home:/IBBoard:/cawbird/xUbuntu_18.04 InRelease 以下の署名が無効です: EXPKEYSIG A7A55B845DCFCBE2 home:IBBoard OBS Project <home:IBBoard@build.opensuse.org> |
Twitterクライアント Cawbird
CawbirdはCorebird派生のTwitterクライアントで、Linux系の様々なディストリビューションに対応しており、現在のバージョンはver.1.4.2です。
apt-key:格納された公開鍵の一覧表示
システム内に格納されている公開鍵は、 apt-key コマンドで一覧表示させることができるので、早速リストアップしてみると、以下の2つの鍵が有効期限切れの状態にあることが判明。後者については以前参照していたWineのレポジトリの名残りらしいのですが、レポジトリはもう現在では参照していません。
1 2 3 4 5 6 7 8 9 10 11 |
$ sudo apt-key list /etc/apt/trusted.gpg -------------------- - 略 - pub rsa2048 2019-10-04 [SC] [期限切れ: 2021-12-12] EDC6 8270 1D79 2970 AD86 45E7 A7A5 5B84 5DCF CBE2 uid [期限切れ] home:IBBoard OBS Project <home:IBBoard@build.opensuse.org> pub rsa2048 2018-10-09 [SC] [期限切れ: 2020-12-17] 31CF B0B6 5659 B5D4 0DEE C98D DFA1 75A7 5104 960E uid [期限切れ] Emulators OBS Project <Emulators@build.opensuse.org> |
apt-key:公開鍵の削除
apt-key コマンド自体が近年、セキュリティ上の理由から廃止予定という烙印を押されてしまいましたが、なかなかすぐには切り替われないのが現実。今回は期限が切れた鍵の削除と、レポジトリから得る新しい鍵の追加をレガシーな apt-key コマンドを使って進めます。
まず期限切れの上記2つの鍵をkey-idで指定して削除します。必要なkey-idは、上記の4桁毎の英数字の羅列の下8桁で表されます。
1 2 3 4 |
$ sudo apt-key del 5104960E OK $ sudo apt-key del 5DCFCBE2 OK |
この状態で再び apt update を実行すると当然、鍵が無いエラーへと変わりました。
1 2 3 4 |
$ sudo apt update - 略 - エラー:11 http://download.opensuse.org/repositories/home:/IBBoard:/cawbird/xUbuntu_18.04 InRelease 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY A7A55B845DCFCBE2 |
Cawbirdレポジトリをブラウザで閲覧
CawbirdレポジトリのURLをブラウザで開くと、次のようになっています(Xubuntu18.04向けを参照)。
1 |
https://download.opensuse.org/repositories/home:/IBBoard:/cawbird/xUbuntu_18.04/ |
その中にある Release.key が今回必要としている公開鍵です。
apt-key:公開鍵の追加
Release.key をダウンロードして apt-key コマンドで追加する作業は、以下のようにパイプ渡しでワンライナーとすることが可能です。
1 2 |
$ wget -qO - https://download.opensuse.org/repositories/home:/IBBoard:/cawbird/xUbuntu_18.04/Release.key | sudo apt-key add - OK |
そして再び公開鍵の一覧をチェックしてみるのですが、期限切れのままです。
1 2 3 4 5 6 7 |
$ apt-key list /etc/apt/trusted.gpg -------------------- - 略 - pub rsa2048 2019-10-04 [SC] [期限切れ: 2021-12-12] EDC6 8270 1D79 2970 AD86 45E7 A7A5 5B84 5DCF CBE2 uid [期限切れ] home:IBBoard OBS Project <home:IBBoard@build.opensuse.org> |
このCawbirdレポジトリ公開鍵の期限切れ問題は既知の事項らしく、レポジトリ側の対応を気長に待ちしかなさそうです。それまではaptのsource.list.dにあるレポジトリ参照をコメントアウトしておきます。
1 2 3 |
$ sudo nano /etc/apt/sources.list.d/home\:IBBoard\:cawbird.list #deb http://download.opensuse.org/repositories/home:/IBBoard:/cawbird/xUbuntu_18.04/ / |
2022.03追記
2ヶ月後そろそろどうだろう、とCawbirdレポジトリを再度訪れてみると、バイナリのバージョンが上がると共に、鍵のタイムスタンプも更新されていました。
早速新しい(と思われる)鍵を上述の要領でインポートすると、今度は鍵の期限切れ表示は無くなり、有効と見なされたようです。
1 2 3 4 5 6 7 8 9 10 |
$ wget -qO - https://download.opensuse.org/repositories/home:/IBBoard:/cawbird/xUbuntu_18.04/Release.key | sudo apt-key add - OK $ apt-key list /etc/apt/trusted.gpg -------------------- - 略 - pub rsa2048 2019-10-04 [SC] [有効期限: 2024-02-22] EDC6 8270 1D79 2970 AD86 45E7 A7A5 5B84 5DCF CBE2 uid [ 不明 ] home:IBBoard OBS Project <home:IBBoard@build.opensuse.org> |
これでパッケージマネージャで更新の上、Cawbirdを新しいバージョンへアップデートすることが出来ました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
$ sudo apt update $ sudo apt upgrade パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 アップグレードパッケージを検出しています... 完了 以下のパッケージはアップグレードされます: cawbird アップグレード: 1 個、新規インストール: 0 個、削除: 0 個、保留: 1 個。 571 kB のアーカイブを取得する必要があります。 この操作後に追加で 52.2 kB のディスク容量が消費されます。 続行しますか? [Y/n] y 取得:1 http://download.opensuse.org/repositories/home:/IBBoard:/cawbird/xUbuntu_18.04 cawbird 1.5-1+3.1 [571 kB] 571 kB を 2秒 で取得しました (251 kB/s) (データベースを読み込んでいます ... 現在 279294 個のファイルとディレクトリがインストールされています。) .../cawbird_1.5-1+3.1_amd64.deb を展開する準備をしています ... cawbird (1.5-1+3.1) で (1.4.2-1+8.1 に) 上書き展開しています ... cawbird (1.5-1+3.1) を設定しています ... hicolor-icon-theme (0.17-2) のトリガを処理しています ... mime-support (3.60ubuntu1) のトリガを処理しています ... desktop-file-utils (0.23-1ubuntu3.18.04.2) のトリガを処理しています ... libglib2.0-0:amd64 (2.56.4-0ubuntu0.18.04.9) のトリガを処理しています ... libglib2.0-0:i386 (2.56.4-0ubuntu0.18.04.9) のトリガを処理しています ... bamfdaemon (0.5.3+18.04.20180207.2-0ubuntu1) のトリガを処理しています ... Rebuilding /usr/share/applications/bamf-2.index... man-db (2.8.3-2ubuntu0.1) のトリガを処理しています ... gnome-menus (3.13.3-11ubuntu1.1) のトリガを処理しています ... |