PGPキーがRPMにインポートされたことを確認するにはどうすればよいですか?


13

以下を使用してキーをインポートできます。

rpm --import / path / to / key

しかし、このキーを既にインポートしたかどうかを後でどのように確認できますか?再インポートしようとするとエラーで失敗し、Puppetを使用してキーをインストールするため、これを回避しようとしています。

回答:


10

を使用して、キーがすでにインポートされてrpm -qi gpg-pubkey-<version>-<release>いるかどうかを再確認できます。インストールされている場合、rpmはそれに関するすべての情報を提供します。インストールされていない場合は、戻り値1で終了するため、パペットレシピにunlessパラメーターを追加できます。

exec { "rpm --import /path/to/package":
  # ...
  unless => "rpm -qi gpg-pubkey-<version>-<release> > /dev/null 2>&1"
}

2
私が見つけたいくつかのコードのより良い方法:KEYFILE=/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release; KEYID=$(echo $(gpg --throw-keyids < $KEYFILE)|cut -c11-18|tr [A-Z] [a-z]); rpm -q gpg-pubkey-$KEYID
lsd

2
カットは特定のレイアウトに結び付けますが、これは私のRHEL6テストシステムでは機能しません。また、gpgにはサブキーとpubキーが含まれるようになりました。だから、私は使用することになったKEYID=$(gpg --throw-keyids $KEYFILE | sed -n '/^pub/s|^[^/]*/\([[:alnum:]]*\) .*|\1|p' | tr [[:upper:]] [[:lower:]])
ダニーザウアー

5

インポートされるすべてのキーは、rpmdbエントリを追加しますgpg-pubkey-<left(hex(fingerprint), 8)>-<encoded import date>gpg-pubkeyrpmdb でその名前()と適切なバージョン(16進数のキーフィンガープリントの最初の8文字)を確認するだけです。


rpm -qi gpg-pubkey-FINGERPRINT-\* > /dev/null 2>&1 (取得する方法を含む基準、FINGERPRINT:をrobinbowes.com/article.php/20081107174415581
テッドZlatanov氏

2

キーがインポートされたことを(プログラムでこの情報を処理することなく)確認したい場合は、次のようにすべてのキーをリストできます。

rpm -qi gpg-pubkey-\* | grep -E ^Packager

またはIDの場合:

rpm -qi gpg-pubkey-\* | grep -E "^Version  "

これは多くの人にとって非常に明白に思えるかもしれませんが、一部の人にとっては(少なくともその見出しに対する)より直接的な答えだと思います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.