エラーメッセージ
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: いくつかのインデックスファイルのダウンロードに失敗しました。これらは無視されるか、古いものが代わりに使われます。
Code language: plaintext (plaintext)
対応方法
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
Code language: plaintext (plaintext)
再度、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 を 2秒 で取得しました (7,490 B/s)
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
アップグレードできるパッケージが 1 個あります。表示するには 'apt list --upgradable' を実行してください。
$ apt list --upgradable
一覧表示... 完了
jenkins/binary 2.235.3 all [2.235.2 からアップグレード可]
N: 追加バージョンが 95 件あります。表示するには '-a' スイッチを付けてください。
Code language: Pony (pony)
つづいて、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]
(省略)
Code language: plaintext (plaintext)
Jenkinsサーバにアクセスすると、無事、Jenkinsが最新バージョンになっていました。
もう少し掘り下げてみた
なぜNO_PUBKEY が表示されたのかな?
(A)Release情報(ハッシュ一覧)
取得:7 https://pkg.jenkins.io/debian-stable binary/ Release [2,044 B]
Code language: JavaScript (javascript)
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
Code language: plaintext (plaintext)
これが、2044バイトでした。
(B)署名
エラー:8 https://pkg.jenkins.io/debian-stable binary/ Release.gpg
公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY FCEF32E745F2C3D5
Code language: JavaScript (javascript)
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-----
Code language: plaintext (plaintext)
(A)Release情報ページ 2044バイト
+
登録者が自らJenkinsリポジトリの公開鍵で署名
↓
(B)署名
(A)Release情報ページ 2044バイト
+
ローカルに登録されていたJenkinsリポジトリの公開鍵で署名
↓
apt内部で作成した署名
↓
(B)署名と違った、(B)署名を検証できなかった、ということのようです。
公開鍵
先頭に 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 []
Code language: plaintext (plaintext)
公開鍵の作成日が2020-03-30と新しいよ
Jenkinsリポジトリの公開鍵が新しくなったのね
だから、署名が違ったんだね
信頼済みの公開鍵リスト
ローカルに登録されている信頼済みの公開鍵リストを表示すると、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]
(省略)
Code language: Bash (bash)
エラー直後のapt-key listは確認していないの?
残念、確認していないって