RPM 패키지가 어떤 GPG 키로 서명되었는지 어떻게 알 수 있나요?

RPM 패키지가 어떤 GPG 키로 서명되었는지 어떻게 알 수 있나요?

RPM의 암호화 서명은 rpm -K이 명령을 사용하여 확인할 수 있습니다. 서명이 RPM의 데이터베이스에 있고 유효한 경우 gpg(또는 ) 을 포함하고 로 끝나는 문자열이 pgp반환됩니다.OK

패키지가 서명되지 않았지만 체크섬이 유효한 경우에도 패키지를 얻을 수는 있지만 OK얻을 수는 없습니다 gpg.

패키지가 서명되었지만 RPM 데이터베이스에 키가 누락된 경우 (GPG)(대문자) NOT OKAY뒤에 가 표시됩니다 (MISSING KEYS: GPG#deadbeef).

이는 패키지 설치 작업을 수행하기 위해 설치해야 하는 키가 무엇인지 파악하려는 경우에 유용합니다.

하지만 확인하고 싶다면 어떻게 해야 할까요?어느특정 패키지에 서명하는 데 RPM 키링의 키가 몇 개 사용됩니까?

답변1

예를 들어 서명 필드를 나열하면 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.

답변2

rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE} %{SIGPGP:pgpsig} %{SIGGPG:pgpsig}\n'

답변3

RPM DB에서 특정 rpm에 서명한 GPG 키를 찾으려면 다음을 수행하세요.

RPM DB의 모든 GPG 키를 나열합니다.

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

먼저 문제의 rpm이 다음과 같은지 확인하세요.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

마지막에 "NOT OK (MISSING KEYS)"가 아닌 "OK"를 찾고 있습니다. 이는 서명되었지만 서명 키가 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)

이제 알 수 있습니다마지막 8자키 ID(즉, fadd8d64b1275ea3의 b1275ea3)는 첫 번째 명령에서 gpg-pubkey- 다음에 나오는 8개 문자 중 하나에 해당합니다. 이 경우에는 그렇습니다!

그러면 관련 키가 있으므로 다음과 같습니다.

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

이 예에서는 HP의 키가 rpm에 서명된 것을 볼 수 있습니다.

도움이 되었기를 바랍니다. 그것을 알아내는 데 시간이 걸렸습니다. :-)

답변4

항목을 발행 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

관련 정보