3.3. GPG を使用したリポジトリーのメタデータの確認
破損したパッケージを検出して回避するために、DNF パッケージマネージャーを使用して RPM パッケージの GNU Privacy Guard (GPG) 署名を確認でき、リポジトリーのメタデータが GPG キーで署名されているかどうかも確認できます。
gpgkeys フィールドにキー URL を設定することで、https 経由でチェックを行う gpgkey を入力できます。あるいは、セキュリティーを向上させるために、キー全体を gpgkeys フィールドに埋め込んで、キーを URL から取得する代わりに直接インポートすることもできます。
前提条件
- リポジトリーとして使用するディレクトリーが存在し、パッケージが含まれている。
手順
リポジトリーを作成するフォルダーにアクセスします。
cd repo/
$ cd repo/Copy to Clipboard Copied! Toggle word wrap Toggle overflow createrepo_cを実行して、RPM パッケージからリポジトリーを作成します。createrepo_c .
$ createrepo_c .Copy to Clipboard Copied! Toggle word wrap Toggle overflow リポデータがあるディレクトリーにアクセスします。
cd repodata/
$ cd repodata/Copy to Clipboard Copied! Toggle word wrap Toggle overflow repomd.xmlファイルに署名します。gpg -u <_gpg-key-email_> --yes --detach-sign --armor /srv/repo/example/repomd.xml
$ gpg -u <_gpg-key-email_> --yes --detach-sign --armor /srv/repo/example/repomd.xmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow リポジトリーで GPG 署名チェックを有効にするには、以下を行います。
-
リポジトリーソースで
check_repogpg = trueを設定します。 チェックを行う
gpgkeyを入力します。キーがhttps経由で利用できる場合は、gpgkeysフィールドにキーのキー URL を設定します。URL キーは必要なだけ追加できます。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 代わりに、たとえば次のように GPG キーを
gpgkeysフィールドに直接追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow テストで署名が見つからない場合、GPG ツールは次のようなエラーを表示します。
GPG verification is enabled, but GPG signature is not available.
$ 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)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 署名が無効な場合、GPG ツールは次のようなエラーを表示します。
repomd.xml GPG signature verification error: Bad GPG signature
repomd.xml GPG signature verification error: Bad GPG signatureCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
リポジトリーソースで
検証
リポジトリーの署名を手動でテストします。
gpg --verify /srv/repo/example/repomd.xml.asc
$ gpg --verify /srv/repo/example/repomd.xml.ascCopy to Clipboard Copied! Toggle word wrap Toggle overflow