UbuntuでGitLab CEの更新でGPGキーのエラーが出た

Ubuntu 20.04 LTSで、apt updateでgitlab-ceの更新で、GPGキーのエラーが出た。エラーの原因は、GPGキーの有効期限が2024年3月1日までで、切れたため。その対応メモ。

出力されたエラーメッセージ

以下の署名が無効です: EXPKEYSIG 3F01618A51312F3F GitLab B.V. (package repository signing key) <packages@gitlab.com>

GPGキーの有効期限が2024年3月1日で切れているので、延長するために、下記のコマンドで更新を行った。

curl -s "https://packages.gitlab.com/gpg.key" | sudo apt-key add -

apt updateを実行してみると、同じようにエラーが表示された(前回と同じ方法では、うまくいかなかった)。公式の手順の内容を参考にして実行したところ、うまくいった。

https://docs.gitlab.com/omnibus/update/package_signatures#update-keys-after-expiry-extension

「signed-by」の機能を使用しているか、コマンドで確認する。

grep 'deb \[signed-by=' /etc/apt/sources.list.d/gitlab_gitlab-?e.list

Grepの結果が返される場合は、「signed-by」 を使用しているので、次のAWKコマンドを実行する。これで、GitLabリポジトリの公開鍵を更新する。要root権限。

 sudo awk '/deb \[signed-by=/{
       pubkey = $2;
       sub(/\[signed-by=/, "", pubkey);
       sub(/\]$/, "", pubkey);
       print pubkey
     }' /etc/apt/sources.list.d/gitlab_gitlab-?e.list | \
   while read line; do
     curl -s "https://packages.gitlab.com/gpg.key" | gpg --dearmor > $line
   done

これで、あとはapt updateを行って、問題が解消しているか確認する。

以下は、実行ログの抜粋。

zen@LABO:~$ sudo apt update
[sudo] zen のパスワード:
ヒット:2 http://security.ubuntu.com/ubuntu focal-security InRelease
ヒット:3 http://jp.archive.ubuntu.com/ubuntu focal InRelease
取得:4 http://jp.archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]
ヒット:5 http://jp.archive.ubuntu.com/ubuntu focal-backports InRelease
取得:1 https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu focal InRelease [23.3 kB]
エラー:1 https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu focal InRelease
  以下の署名が無効です: EXPKEYSIG 3F01618A51312F3F GitLab B.V. (package repository signing key) <packages@gitlab.com>
137 kB を 2秒 で取得しました (59.7 kB/s)
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
パッケージはすべて最新です。
W: 署名照合中にエラーが発生しました。リポジトリは更新されず、過去のインデックス ファイルが使われます。GPG エラー: https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu focal InRelease: 以下の署名が無効です: EXPKEYSIG 3F01618A51312F3F GitLab B.V. (package repository signing key) <packages@gitlab.com>
W: https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu/dists/focal/InRelease の 取得に失敗しました  以下の署名が無効です: EXPKEYSIG 3F01618A51312F3F GitLab B.V. (package repository signing key) <packages@gitlab.com>
W: いくつかのインデックスファイルのダウンロードに失敗しました。これらは無視され るか、古いものが代わりに使われます。
zen@LABO:~$
zen@LABO:~$ curl -s "https://packages.gitlab.com/gpg.key" | sudo apt-key add -
OK
zen@LABO:~$
zen@LABO:~$ sudo apt update
[sudo] zen のパスワード:
ヒット:2 http://jp.archive.ubuntu.com/ubuntu focal InRelease
ヒット:3 http://security.ubuntu.com/ubuntu focal-security InRelease
取得:4 http://jp.archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]
ヒット:5 http://jp.archive.ubuntu.com/ubuntu focal-backports InRelease
取得:1 https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu focal InRelease [23.3 kB]
エラー:1 https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu focal InRelease
  以下の署名が無効です: EXPKEYSIG 3F01618A51312F3F GitLab B.V. (package repository signing key) <packages@gitlab.com>
137 kB を 3秒 で取得しました (46.3 kB/s)
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
パッケージはすべて最新です。
W: 署名照合中にエラーが発生しました。リポジトリは更新されず、過去のインデックス ファイルが使われます。GPG エラー: https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu focal InRelease: 以下の署名が無効です: EXPKEYSIG 3F01618A51312F3F GitLab B.V. (package repository signing key) <packages@gitlab.com>
W: https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu/dists/focal/InRelease の 取得に失敗しました  以下の署名が無効です: EXPKEYSIG 3F01618A51312F3F GitLab B.V. (package repository signing key) <packages@gitlab.com>
W: いくつかのインデックスファイルのダウンロードに失敗しました。これらは無視され るか、古いものが代わりに使われます。
zen@LABO:~$
zen@LABO:~$  grep 'deb \[signed-by=' /etc/apt/sources.list.d/gitlab_gitlab-?e.list

deb [signed-by=/usr/share/keyrings/gitlab_gitlab-ce-archive-keyring.gpg] https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu/ focal main
zen@LABO:~$
zen@LABO:~$
zen@LABO:~$
zen@LABO:~$ sudo su
root@LABO:/home/zen#
root@LABO:/home/zen#
root@LABO:/home/zen# awk '/deb \[signed-by=/{
>        pubkey = $2;
>        sub(/\[signed-by=/, "", pubkey);
>        sub(/\]$/, "", pubkey);
>        print pubkey
>      }' /etc/apt/sources.list.d/gitlab_gitlab-?e.list | \
>    while read line; do
>      curl -s "https://packages.gitlab.com/gpg.key" | gpg --dearmor > $line
>    done
root@LABO:/home/zen#
root@LABO:/home/zen# apt update
ヒット:2 http://security.ubuntu.com/ubuntu focal-security InRelease
ヒット:3 http://jp.archive.ubuntu.com/ubuntu focal InRelease
ヒット:4 http://jp.archive.ubuntu.com/ubuntu focal-updates InRelease
ヒット:5 http://jp.archive.ubuntu.com/ubuntu focal-backports InRelease
取得:1 https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu focal InRelease [23.3 kB]
取得:6 https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu focal/main amd64 Packages [54.6 kB]
78.0 kB を 3秒 で取得しました (22.6 kB/s)
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
アップグレードできるパッケージが 1 個あります。表示するには 'apt list --upgradable' を実行してください。
root@LABO:/home/zen#
スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする