3.3. GPG を使用したリポジトリーのメタデータの確認
破損したパッケージを検出して回避するには、DNF パッケージマネージャーを使用して RPM パッケージの GNU Privacy Guard (GPG) 署名を確認し、リポジトリーのメタデータが GPG キーで署名されているかどうかも確認してください。
チェックを行う gpgkey を 入力するには、キー全体を gpgkeys フィールドに埋め込んで、キーを直接インポートします。
前提条件
- リポジトリーとして使用するディレクトリーが存在し、パッケージが含まれている。
手順
リポジトリーを作成するフォルダーにアクセスします。
$ cd repo/createrepo_cを実行して、RPM パッケージからリポジトリーを作成します。$ createrepo_c .リポデータがあるディレクトリーにアクセスします。
$ cd repodata/repomd.xmlファイルに署名します。$ gpg -u <_gpg-key-email_> --yes --detach-sign --armor /srv/repo/example/repomd.xmlリポジトリーで GPG 署名チェックを有効にするには、以下を行います。
-
リポジトリーソースで
check_repogpg = trueを設定します。 確認したい
gpgkeyを入力してください。以下に例を示します。
check_gpg = true check_ssl = true check_repogpg = true id = "custom-local" name = "signed local packages" type = "yum-baseurl" url = "https://local/repos/projectrepo/" gpgkeys=['''-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.4.10 (GNU/Linux) mQENBEt+xXMBCACkA1ZtcO… -----END PGP PUBLIC KEY BLOCK-----''']テストで署名が見つからない場合、GPG ツールは次のようなエラーを表示します。
$ GPG verification is enabled, but GPG signature is not available. This may be an error or the repository does not support GPG verification: Status code: 404 for http://repo-server/rhel/repodata/repomd.xml.asc (IP: 192.168.1.3)署名が無効な場合、GPG ツールは次のようなエラーを表示します。
repomd.xml GPG signature verification error: Bad GPG signature
-
リポジトリーソースで
検証
リポジトリーの署名を手動でテストします。
$ gpg --verify /srv/repo/example/repomd.xml.asc