web-dev-qa-db-ja.com

RPMパッケージが署名されたGPGキーを確認するにはどうすればよいですか?

RPMの暗号署名はrpm -Kコマンドで確認できます。これは、署名がRPMのデータベースにあり有効な場合、gpg(またはpgp)を含み、OKで終わる文字列を返します。

パッケージは署名されていなくてもチェックサムが有効な場合、OKは取得されますが、gpgは取得されません。

パッケージは署名されているが、RPMデータベースからキーが欠落している場合、(GPG)(大文字)とNOT OKAYの後に(MISSING KEYS: GPG#deadbeef)が続きます。

これは、パッケージのインストールを機能させるためにインストールする必要のあるキーを特定する場合に便利です。

しかし、RPMキーリング内のいくつかのキーのwhichが特定のパッケージの署名に使用されたことを確認したい場合はどうなりますか?

29
mattdm
rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE} %{SIGPGP:pgpsig} %{SIGGPG:pgpsig}\n'
13
Philip Durbin

rpm -qpi package.rpmを介してリストされた署名フィールドがあります。例:

[vagrant@vm-one ~]$ rpm -qpi puppet-3.7.4-1.el6.noarch.rpm
Name        : puppet
Version     : 3.7.4
Release     : 1.el6
Architecture: noarch
Install Date: (not installed)
Group       : System Environment/Base
Size        : 6532300
License     : ASL 2.0
Signature   : RSA/SHA512, Tue 27 Jan 2015 11:17:18 PM UTC, Key ID 1054b7a24bd6ec30
Source RPM  : puppet-3.7.4-1.el6.src.rpm
Build Date  : Mon 26 Jan 2015 11:48:15 PM UTC
Build Host  : tahoe.delivery.puppetlabs.net
Relocations : (not relocatable)
Vendor      : Puppet Labs
URL         : http://puppetlabs.com
Summary     : A network tool for managing many disparate systems
Description :
Puppet lets you centrally manage every important aspect of your system using a
cross-platform specification language that manages all the separate elements
normally aggregated in different files, like users, cron jobs, and hosts,
along with obviously discrete elements like packages, services, and files.
28
brightlancer

RPM DBのどのGPGキーが特定のrpmに署名したかを確認するには、次のようにします。

RPM DB内のすべてのGPGキーを一覧表示します。

$ rpm -qa gpg-pubkey*
...
...
gpg-pubkey-b1275ea3-546d1808
...
...

まず、問題のrpm isがRPM DBのキーで署名されていることを確認します。

$ rpm -K hp/mlnx-en-utils-2.2-1.0.7.0.g0055740.rhel6u4.x86_64.rpm
hp/mlnx-en-utils-2.2-1.0.7.0.g0055740.rhel6u4.x86_64.rpm: rsa sha1 (md5) pgp md5 OK

あなたは最後にOKを探していますが、「NOT OK(MISSING KEYS)」ではありません。つまり、署名されているが、RPM DBにないキーによるものです。

そうです、チェックしているrpmはRPM DBのキーで署名されています。

次に、rpmが署名されたキーIDを取得します。

$ rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} %{SIGPGP:pgpsig} %{SIGGPG:pgpsig}\n' -p hp/mlnx-en-utils-2.2-1.0.7.0.g0055740.rhel6u4.x86_64.rpm
mlnx-en-utils-2.2-1.0.7.0.g0055740.rhel6u4 RSA/SHA1, Tue Apr 14 12:34:51 2015, Key ID fadd8d64b1275ea3 (none)

これで、キーIDの最後の8文字(つまり、fadd8d64b1275ea3のb1275ea3)が、最初のコマンドのgpg-pubkey-に続く8文字のいずれかに対応するかどうかを確認できます。そしてこの場合、それはそうです!

そして、あなたは問題の鍵を持っているので、そうしてください:

$ rpm -qi gpg-pubkey-b1275ea3-546d1808

この例では、このrpmに署名したのはHPのキーであることがわかります。

お役に立てれば。理解するのにしばらくかかった。 :-)

9
Seekoei

問題 less <rpm file>Signatureエントリを確認します。例:

[vagrant@vm-one ~]$ less artifactory-3.5.3.rpm
Name        : artifactory
Version     : 3.5.3
Release     : 30172
Architecture: noarch
Install Date: (not installed)
Group       : Development/Tools
Size        : 42286184
License     : LGPL
Signature   : (none)
Source RPM  : artifactory-3.5.3-30172.src.rpm
Build Date  : Thu 19 Mar 2015 04:47:04 PM UTC
Build Host  : artbuild2.jfrog.local
Relocations : (not relocatable)
Vendor      : JFrog Ltd.
URL         : http://www.jfrog.org
Summary     : Binary Repository Manager
Description :
The best binary repository manager around.
-rwxrwxr-x    1 root    root                     7891 Mar 19 16:47 /etc/init.d/artifactory
drwxr-xr-x    2 artifactartifact                    0 Mar 19 16:47 /etc/opt/jfrog/artifactory
-rwxrwx---    1 artifactartifact                 9855 Mar 19 16:47 /etc/opt/jfrog/artifactory/artifactory.config.xml
-rwxrwx---    1 artifactartifact                11172 Mar 19 16:47 /etc/opt/jfrog/artifactory/artifactory.system.properties
-rwxrwx---    1 artifactartifact                  457 Mar 19 16:47 /etc/opt/jfrog/artifactory/default
-rwxrwx---    1 artifactartifact                 6858 Mar 19 16:47 /etc/opt/jfrog/artifactory/logback.xml
-rwxrwx---    1 artifactartifact                 5470 Mar 19 16:47 /etc/opt/jfrog/artifactory/mimetypes.xml
drwxrwxr-x    2 root    root                        0 Mar 19 16:47 /opt/jfrog
drwxrwxr-x    2 root    root                        0 Mar 19 16:47 /opt/jfrog/artifactory/bin
-rwxrwxr-x    1 root    root                   103424 Mar 19 16:47 /opt/jfrog/artifactory/bin/artifactory-service.exe
-rwxrwxr-x    1 root    root                     1366 Mar 19 16:47 /opt/jfrog/artifactory/bin/artifactory.bat
-rwxrwxr-x    1 root    root                      457 Mar 19 16:47 /opt/jfrog/artifactory/bin/artifactory.default
artifactory-3.5.3.rpm
5
Sirex