[Ubuntu] apt update時に「公開鍵を利用できないため、以下の署名は検証できませんでした」

エラーメッセージ

Jenkinsを運用しているUbuntu 18.04で、sudo apt update したときのことです。

Jenkinsの更新箇所で、「公開鍵を利用できないため、以下の署名は検証できませんでした」と表示されてしまいました。(見やすいように空行をいれています)

$ sudo apt update (省略) 無視:1 https://pkg.jenkins.io/debian-stable binary/ InRelease 取得:7 https://pkg.jenkins.io/debian-stable binary/ Release [2,044 B] エラー:8 https://pkg.jenkins.io/debian-stable binary/ Release.gpg 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY FCEF32E745F2C3D5 W: 署名照合中にエラーが発生しました。リポジトリは更新されず、過去のインデックスファイルが使われます。GPG エラー: https://pkg.jenkins.io/debian-stable binary/ Release: 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY FCEF32E745F2C3D5 W: http://pkg.jenkins.io/debian-stable/binary/Release.gpg の取得に失敗しました 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY FCEF32E745F2C3D5 W: いくつかのインデックスファイルのダウンロードに失敗しました。これらは無視されるか、古いものが代わりに使われます。

対応方法

NO_PUBKEYに続くFCEF32E745F2C3D5を指定して、公開鍵を追加するといいようです。

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys FCEF32E745F2C3D5 Executing: /tmp/apt-key-gpghome.tHWVsBdqUd/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys FCEF32E745F2C3D5 gpg: 鍵FCEF32E745F2C3D5: 公開鍵"Jenkins Project <jenkinsci-board@googlegroups.com>"をインポートしました gpg: 処理数の合計: 1 gpg: インポート: 1

再度、sudo apt update をすると、無事完了しました。

$ sudo apt update (省略8 https://pkg.jenkins.io/debian-stable binary/ Release.gpg [833 B] (省略12 https://pkg.jenkins.io/debian-stable binary/ Packages [17.8 kB] 18.6 kB を27,490 B/s) パッケージリストを読み込んでいます1 個あります'apt list --upgradable' を実行してくださいしてくださいください2.235.3 all [2.235.2 からアップグレード可N: 追加バージョンが95 件あります'-a' スイッチを付けてくださいを付けてください

つづいて、sudo apt upgrade でアップグレードしました。

$ sudo apt upgrade パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 アップグレードパッケージを検出しています... 完了 以下のパッケージが自動でインストールされましたが、もう必要とされていません: libllvm9 これを削除するには 'sudo apt autoremove' を利用してください。 以下のパッケージはアップグレードされます: jenkins アップグレード: 1 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。 65.0 MB のアーカイブを取得する必要があります。 この操作後に 8,192 B のディスク容量が解放されます。 続行しますか? [Y/n] Y 取得:1 https://pkg.jenkins.io/debian-stable binary/ jenkins 2.235.3 [65.0 MB] (省略)

Jenkinsサーバにアクセスすると、無事、Jenkinsが最新バージョンになっていました。

もう少し掘り下げてみた

なぜNO_PUBKEY が表示されたのかな?

(A)Release情報(ハッシュ一覧)

取得:7 https://pkg.jenkins.io/debian-stable binary/ Release [2,044 B]

https://pkg.jenkins.io/debian-stable/binary/Release にアクセスすると、

Architectures: all Date: Mon, 27 Jul 2020 17:16:05 +0000 Origin: jenkins.io Suite: binary MD5Sum: df63f403d90a5d6546de12a0a960eae6 102563 Packages 1cd99377cc6b990deece8911d4dc9d80 17814 Packages.bz2 c73a6f245841ae971020a6ba1976bd88 20099 Packages.gz c430aba4f332aebec0d90335b7b261ce 16970 Packages.lzma 8a1b8da53d710fd22f33fa0895606b78 90 Release SHA1: 3b45f3424469cd823982511a9cd471f801100243 102563 Packages 51a8cd6274a9cab653f48f8f20d9de09271aca0c 17814 Packages.bz2 a278c4e7cd88cbfa6d30cbced0ec03381bbb56ce 20099 Packages.gz 47181348b5c74b5d0fa0e9403758a7c595247979 16970 Packages.lzma 9cde59066724dabdfb449d56a0d7fe1d2b1ff509 90 Release SHA256: ff7fc301dc0fe8f1f0ec54f854ad2869642fbd6c043dbf1ec4e326c7728a25ee 102563 Packages 6a6acdeb66e4e7b8d32d2ec448f6fe65a81b990528491e9d675d726c2fabdcda 17814 Packages.bz2 e5ebf2b171b04efaecd82908b9d7b3aca5b9e7da92fb808927a5a9abe82b599b 20099 Packages.gz faae5174c4bcc25214d5c275def9efdbe0c1690bb52301df56b6fbf97a9304e6 16970 Packages.lzma e8e519148764d6acf225a874b30a218ed32ee526fbeec1e29e78063d1407864b 90 Release SHA512: d4c629ec5b05fc3d00e2970f2f1070fd53964f23c5e0f3cece3c6cc3822fbd45bd97fb996eadf830a706ebc517eb074550e5759f654575dd6b8d5bb2f6e3ff00 102563 Packages 7b50881fd83f7e833b567edcfe7287a5bd2812de0fd4050ccb79fd4c6301ee797d072fcf9880697f7199786ae043d87a7453d4b82d8c7d22863d7ad1d503925e 17814 Packages.bz2 50905fa11daf08dbdc21342768674125ba60372fcb525fe744b54ea97e2e31c6d2d87272fcb77c2130ca956fd1487767f080502d3ceba615c474f8d42310d4e9 20099 Packages.gz 075d3c17f347050cd4ba4a20e92b09e0b0abb29b4d2a9e99aed24738edc12b52b5cf8bf4f6924ca21ae3f7644cacd70b54c4838a57de8ecb9c82a130f2adb7d1 16970 Packages.lzma ad99df754137e520cb10431426b7249f30989e2daed831d89bef733aa6ce14805a1e0d8c95c11be12e8668058149bf60851fd91325a4112e32ac296ca61a2067 90 Release

これが、2044バイトでした。

(B)署名

エラーラー:8 https://pkg.jenkins.io/debian-stable binary/ Release.gpg 公開鍵を利用できないため利用できないため: NO_PUBKEY FCEF32E745F2C3D5

https://pkg.jenkins.io/debian-stable/binary/Release.gpg をダウンロードすると、

-----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEYql1a/14DDd88kuo/O8y50Xyw9UFAl8fC9UACgkQ/O8y50Xy w9VzbA/+LcF5suOdsX/59KthNg7bOY9Tod2aOoLkAmhYP8wYpxr3+i5jEwAMP3Qi /oCnY1RBSbN/BdaluapGjY8HNmotF9S15dqruSwkWOTvTgYT7yA3qHt3YHWgcxxP TxbU3r6VjwmiMqw30uYXAvjm6pfH3E7Mx0aXlHjzpXmY8JQmuxf4ZPT3os+plhcy gmOaUNse1Cka5ItOk6eOIM1Oi74k/qBmmb14gcIbZ3TCV7djtIVCL05cKPSZMnX4 /kS2/0fpndClXq8pEVON4wfDw3loQOT1eYy7REDMXOz06+YT0wfox9tZmq30sBXX CJxlsi4YZyx4TkJmB+3nKDLUeM75GHY9egg/W4Dxzq93aR2KYwwoI4/wAwX3xfsE lMCsyiI/XvPGsgXvrrFn37slAt5MZJubPXZah4dsikpFDaHXeytmLtlCORY8brw1 glkG02TrSaFxwstdLNTuVv+WEfEfILhkLE7kSvw72/J3/vABJqgi+2rGFu8D1Fn/ sSRDV8GVdleJP4GK7/e4NkxC0a90eA484vom09xrsvtydPzzBD2+ZpoySsll3DEO 1Kv+NzbF9JJg5fxKff7wqqMOrs9BVWSxT3edb7WK/cuZDNKGFNHKE3RVzGRXnrxQ gHVjiqjSRlZ3nB/YjxnNQykQQjg0nattswHSVyEnZ/kpXZP1zc8= =eAkl -----END PGP SIGNATURE-----

(A)Release情報ページ 2044バイト

登録者が自らJenkinsリポジトリの公開鍵で署名

(B)署名

(A)Release情報ページ 2044バイト

ローカルに登録されていたJenkinsリポジトリの公開鍵で署名

apt内部で作成した署名

(B)署名と違った、(B)署名を検証できなかった、ということのようです。

公開鍵

http://keyserver.ubuntu.com/pks/lookup

先頭に 0x をつけて、0xFCEF32E745F2C3D5 で検索すると、Jenkinsリポジトリの公開鍵の情報が表示されました。

pub rsa4096/62a9756bfd780c377cf24ba8fcef32e745f2c3d5 2020-03-30T13:10:17Z Hash=b81ddaa6501170aebd9b9f91010417c9 uid Jenkins Project <jenkinsci-board@googlegroups.com> sig sig fcef32e745f2c3d5 2020-03-30T13:10:17Z 2023-03-30T13:10:17Z ____________________ [selfsig] sub rsa4096/34b14af8f71411c5098c5da4d9dbb52468f30bd7 2020-03-30T13:10:17Z sig sbind fcef32e745f2c3d5 2020-03-30T13:10:17Z ____________________ 2023-03-30T13:10:17Z []

公開鍵の作成日が2020-03-30と新しいよ

Jenkinsリポジトリの公開鍵が新しくなったのね

だから、署名が違ったんだね

信頼済みの公開鍵リスト

Linux: apt-get 時の GPG error (NO_PUBKEY) の解決例 | Yukun's Blog
| Linux: apt-get 時の GPG error (NO_PUBKEY) の解決例

ローカルに登録されている信頼済みの公開鍵リストを表示すると、FCEF32E745F2C3D5 のキーがありました。

$ apt-key list /etc/apt/trusted.gpg -------------------- (省略) pub rsa4096 2020-03-30 [SC] [有効期限: 2023-03-30] 62A9 756B FD78 0C37 7CF2 4BA8 FCEF 32E7 45F2 C3D5 uid [ 不明 ] Jenkins Project <jenkinsci-board@googlegroups.com> sub rsa4096 2020-03-30 [E] [有効期限: 2023-03-30] (省略)

エラー直後のapt-key listは確認していないの?

残念、確認していないって

参考記事

apt-get update時に「公開鍵を利用できないため、以下の署名は検証できませんでした」と出た場合 - Qiita
sudo apt-get updateをしたときに 2,667 kB を 1分 3秒 で取得しました (42.2 kB/s) パッケージリストを読み込んでいます... 完了 W: 署名照合中にエラーが発生しました。リポジトリは更新さ...
タイトルとURLをコピーしました