Linux で yum update
や apt update
を実行した際に、以下のようなエラーが出ることがあります。
The GPG keys listed for the "Repository" repository are already installed but they are not correct for this package.
NO_PUBKEY XXXXXXXXXXXXXXXX
これは、パッケージの署名を検証するための GPG 公開鍵が不足・不一致 しているときに発生します。
セキュリティ上、リポジトリは必ず署名検証を行うため、正しい GPG 鍵を導入しなければ更新ができません。
あわせて読みたい


Linuxパッケージ管理ツール徹底解説!apt、yum、rpmの使い方と基本コマンド
パッケージ管理ツールとは? Linuxでは、ソフトウェアは「パッケージ」という形式で配布され、これを管理するためにパッケージ管理ツールを使います。これらのツールを…
目次
主な原因
- 新しいリポジトリの GPG 鍵をインポートしていない
- サードパーティリポジトリを追加した際に発生しやすい。
- 既存の GPG 鍵が古くなった・期限切れ
- 公式リポジトリでも鍵が更新されることがある。
- 鍵の不一致
- 違うリポジトリの鍵を誤って登録している場合。
解決方法
1. yum / dnf 系 (RHEL, CentOS, Fedora)
エラーが出たリポジトリの公開鍵をインポートします。公開鍵は通常、リポジトリ提供元のサイトにあります。
例: CentOS の公式キーを登録
sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
特定の URL から鍵を取得することも可能です。
sudo rpm --import https://www.example.com/RPM-GPG-KEY-repo
登録後、改めて更新します。
sudo yum clean all
sudo yum update
あわせて読みたい


【コマンド詳細】sudoの使い方とオプションまとめ
sudoコマンドは、一般ユーザーが一時的に特権(root権限)を取得して、特定のコマンドを実行するためのツールです。システムの安全性を保ちながら特権操作を行うために…
2. apt 系 (Debian, Ubuntu)
エラー例:
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY ABCD1234EF567890
不足しているキーを追加します。
2-1. apt-key で追加
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ABCD1234EF567890
2-2. ファイルから追加
リポジトリ提供元から GPG 鍵ファイル(例: repo.gpg
)を取得し、追加します。
wget https://www.example.com/repo.gpg
sudo apt-key add repo.gpg
その後、キャッシュを更新します。
sudo apt update
3. 古い鍵の更新
既存の鍵が古い場合、削除して新しいものを登録します。
sudo apt-key del ABCD1234EF567890
# 再度 apt-key add で登録
yum の場合も同様に、古い鍵を削除して再インポートします。
注意点
- GPG 鍵は必ず 公式サイトや信頼できる配布元 から取得してください。
- 不明なサイトの鍵を登録すると、悪意あるパッケージをインストールするリスクがあります。
apt-key
は将来的に非推奨のため、可能であれば/etc/apt/trusted.gpg.d/
に直接配置する方法が推奨されています。
まとめ
- GPG 鍵エラーは 公開鍵が未登録・期限切れ・不一致 が原因。
- yum 系では
rpm --import
、apt 系ではapt-key add
を利用して修復する。 - 必ず 公式の配布元から鍵を取得 することが重要。
あわせて読みたい


【まとめ】Linuxパッケージ管理のチートシート(yum,dnf,apt,rpmなど)
Linuxパッケージ管理の基本と主要コマンド一覧 Linuxのシステム管理では、パッケージ管理がソフトウェアのインストール、削除、更新を効率化する重要な手段です。主要な…