yum updateコマンド実行時にBad GPG signatureエラーが発生した原因と対応手順

Tech

2024.1.26

Topics

はじめに

こんにちは、eunseoです。

自分のサーバー上で「yum update」および「yum check-update」を実行した時に、Bad GPG signatureのエラーが発生しました。
本記事では、エラーの原因および解決方法についてご説明いたします。

概要

2024年1月3日より新しいGPGキーを含むRPMリポジトリがアップデートされ、パッケージに新しいキーが署名されました。

PGDGとは

PGDG(PostgreSQL Global Development Group)とは、「PostgreSQL グローバル開発グループ」の略です。
PGDGによってPostgreSQLが開発され、PostgreSQLの開発者からなるコミュニティになっています。

エラー内容

Error: Failed download metadata for repo 'pgdg-common': repomd.xml GPG signature verification error: Bad GPG signature

エラー原因

PostgreSQLのRPM パッケージのGPG署名は弱くなりました。
特に RHEL 9は、FIPS モードをイネーブルにする時、PGDG RPM キーに問題があります。

そのため、PGDGを最新バージョンにバージョンアップする必要があります。

参考:https://yum.postgresql.org/news/pgdg-rpm-repo-gpg-key-update/

環境

OS:Red Hat Enterprise Linux 9.1
PostgreSQL:PostgreSQL13
PGDG:42.0-32

手順

まずは、現在のPGDGバージョンを確認します。

 
# rpm -qa | grep pgdg 
pgdg-redhat-repo-42.0-32.noarch 

1.リポジトリのバックアップ取得

 
# cd /etc/yum.repos.d/ 
# cp pgdg-redhat-all.repo pgdg-redhat-all.repo.bak 

2.リポジトリの変更

pgdg-redhat-all.repoファイルの中身にある「enabled」のすべてを「0」に変更します。

 
# vi pgdg-redhat-all.repo

enabled = 1

enabled = 0

3.PGDGのバーションアップ

各OSのリポジトリは以下のサイトで参考してください。
https://download.postgresql.org/pub/repos/yum/common/redhat/

「pgdg-redhat-repo-4.0-38」のリンクのアドレスをコピーします。

PGDGの最新バーション「42.0-38」をインストールします。

 
# yum install https://download.postgresql.org/pub/repos/yum/common/redhat/rhel-9.1-x86_64/pgdg-redhat-repo-42.0-38PGDG.noarch.rpm

無事にインストールできましたら、以下の結果になっていることが確認できます。

 
Upgraded:
pgdg-redhat-repo-42.0-38PGDG.noarch

Complete!

以下のコマンドを実行したら、新しい「pgdg-redhat-all.repo.rpmnew」ファイルが生成されていることが確認できます。

 
# ll /etc/yum.repos.d/
 
total 76
-rw-r--r-- 1 root root 12319 Jan 19 15:12 pgdg-redhat-all.repo
-rw-r--r-- 1 root root 12319 Jan 19 15:11 pgdg-redhat-all.repo.bak
-rw-r--r-- 1 root root 13067 Dec 26 08:11 pgdg-redhat-all.repo.rpmnew
-rw-r--r-- 1 root root 4645 Nov 7 20:00 redhat-rhui-beta.repo.disabled
-rw-r--r-- 1 root root 467 Dec 12 03:29 redhat-rhui-client-config.repo
-rw-r--r-- 1 root root 5984 Nov 7 20:00 redhat-rhui-eus.repo.disabled
-rw-r--r--. 1 root root 5792 Dec 12 03:29 redhat-rhui.repo

 4.リポジトリの置き換え

変更したリポジトリを日時を付けたバックアップファイルに移動します。

 
# mv pgdg-redhat-all.repo pgdg-redhat-all.repo.bak`date +%Y%m%d`

新しい「pgdg-redhat-all.repo.rpmnew」ファイルを 「pgdg-redhat-all.repo」ファイルにコピーします。

 
# cp pgdg-redhat-all.repo.rpmnew pgdg-redhat-all.repo

5.バーションを確認

以下のコマンドを実行し、バーションが「4.0-38」になっていることを確認します。

 
# rpm -qa | grep pgdg
pgdg-redhat-repo-42.0-38PGDG.noarch

6.パッケージを更新

yum updateコマンドを実行し、Dependencies resolvedになっていることを確認します。

 
# yum update pgdg
 
PostgreSQL common RPMs for RHEL / Rocky / AlmaLinux 9 - x86_64
PostgreSQL common RPMs for RHEL / Rocky / AlmaLinux 9 - x86_64
Importing GPG key 0x08B40D20:
 Userid     : "PostgreSQL RPM Repository <pgsql-pkg-yum@lists.postgresql.org>"
 Fingerprint: D4BF 08AE 67A0 B4C7 A1DB CCD2 40BC A2B4 08B4 0D20
 From       : /etc/pki/rpm-gpg/PGDG-RPM-GPG-KEY-RHEL
Is this ok [y/N]: y
PostgreSQL common RPMs for RHEL / Rocky / AlmaLinux 9 - x86_64
PostgreSQL common RPMs for RHEL / Rocky / AlmaLinux 9 - x86_64
PostgreSQL 16 for RHEL / Rocky / AlmaLinux 9 - x86_64
PostgreSQL 16 for RHEL / Rocky / AlmaLinux 9 - x86_64
Importing GPG key 0x08B40D20:
 Userid     : "PostgreSQL RPM Repository <pgsql-pkg-yum@lists.postgresql.org>"
 Fingerprint: D4BF 08AE 67A0 B4C7 A1DB CCD2 40BC A2B4 08B4 0D20
 From       : /etc/pki/rpm-gpg/PGDG-RPM-GPG-KEY-RHEL
Is this ok [y/N]: y
PostgreSQL 16 for RHEL / Rocky / AlmaLinux 9 - x86_64
PostgreSQL 15 for RHEL / Rocky / AlmaLinux 9 - x86_64
PostgreSQL 15 for RHEL / Rocky / AlmaLinux 9 - x86_64
Importing GPG key 0x08B40D20:
 Userid     : "PostgreSQL RPM Repository <pgsql-pkg-yum@lists.postgresql.org>"
 Fingerprint: D4BF 08AE 67A0 B4C7 A1DB CCD2 40BC A2B4 08B4 0D20
 From       : /etc/pki/rpm-gpg/PGDG-RPM-GPG-KEY-RHEL
Is this ok [y/N]: y
PostgreSQL 15 for RHEL / Rocky / AlmaLinux 9 - x86_64
PostgreSQL 15 for RHEL / Rocky / AlmaLinux 9 - x86_64
PostgreSQL 14 for RHEL / Rocky / AlmaLinux 9 - x86_64
PostgreSQL 14 for RHEL / Rocky / AlmaLinux 9 - x86_64
Importing GPG key 0x08B40D20:
 Userid     : "PostgreSQL RPM Repository <pgsql-pkg-yum@lists.postgresql.org>"
 Fingerprint: D4BF 08AE 67A0 B4C7 A1DB CCD2 40BC A2B4 08B4 0D20
 From       : /etc/pki/rpm-gpg/PGDG-RPM-GPG-KEY-RHEL
Is this ok [y/N]: y
PostgreSQL 14 for RHEL / Rocky / AlmaLinux 9 - x86_64
PostgreSQL 14 for RHEL / Rocky / AlmaLinux 9 - x86_64
PostgreSQL 13 for RHEL / Rocky / AlmaLinux 9 - x86_64
PostgreSQL 13 for RHEL / Rocky / AlmaLinux 9 - x86_64
Importing GPG key 0x08B40D20:
 Userid     : "PostgreSQL RPM Repository <pgsql-pkg-yum@lists.postgresql.org>"
 Fingerprint: D4BF 08AE 67A0 B4C7 A1DB CCD2 40BC A2B4 08B4 0D20
 From       : /etc/pki/rpm-gpg/PGDG-RPM-GPG-KEY-RHEL
Is this ok [y/N]: y
PostgreSQL 13 for RHEL / Rocky / AlmaLinux 9 - x86_64
PostgreSQL 13 for RHEL / Rocky / AlmaLinux 9 - x86_64
PostgreSQL 12 for RHEL / Rocky / AlmaLinux 9 - x86_64
PostgreSQL 12 for RHEL / Rocky / AlmaLinux 9 - x86_64
Importing GPG key 0x08B40D20:
 Userid     : "PostgreSQL RPM Repository <pgsql-pkg-yum@lists.postgresql.org>"
 Fingerprint: D4BF 08AE 67A0 B4C7 A1DB CCD2 40BC A2B4 08B4 0D20
 From       : /etc/pki/rpm-gpg/PGDG-RPM-GPG-KEY-RHEL
Is this ok [y/N]: y
PostgreSQL 12 for RHEL / Rocky / AlmaLinux 9 - x86_64
PostgreSQL 12 for RHEL / Rocky / AlmaLinux 9 - x86_64
Dependencies resolved.

7.エラー確認

エラーが出ないことを確認します。

 
# yum check-update | grep postgresql*
postgresql13.x86_64                       13.13-1PGDG.rhel9             pgdg13
postgresql13-libs.x86_64                  13.13-1PGDG.rhel9             pgdg13
postgresql13-server.x86_64                13.13-1PGDG.rhel9             pgdg13

まとめ

本記事では、PGDG RPM キーにエラーが発生した原因および対応手順を分かりやすいように説明しました。
古いバージョンを使っているなら、早めにバージョンアップしよう!と思いました。
是非本記事が参考になり役に立つことができたら幸いです。

テックブログ新着情報のほか、AWSやGoogle Cloudに関するお役立ち情報を配信中!

Recommends

こちらもおすすめ

Special Topics

注目記事はこちら