Jak sprawdzić, z którym kluczem GPG został podpisany pakiet RPM?

26

Podpis kryptograficzny RPM można zweryfikować za pomocą rpm -Kpolecenia. Zwraca ciąg zawierający gpg(lub pgp) i kończący się, OKjeśli podpis znajduje się w bazie danych RPM i jest prawidłowy.

Jeśli pakiet nie jest podpisany, ale sumy kontrolne są prawidłowe, nadal otrzymasz OK, ale nie gpg.

Jeśli pakiet jest podpisany, ale brakuje klucza w bazie danych RPM, otrzymasz (GPG)(wielkie litery) NOT OKAY, a następnie (MISSING KEYS: GPG#deadbeef).

Jest to przydatne, jeśli chcę dowiedzieć się, jaki klucz powinienem znaleźć, aby zainstalować, aby instalacja pakietu działała.

Ale co, jeśli chcę sprawdzić, który z kilku kluczy w moim zestawie kluczy RPM został użyty do podpisania danego pakietu?

mattdm
źródło

Odpowiedzi:

12
rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE} %{SIGPGP:pgpsig} %{SIGGPG:pgpsig}\n'
Philip Durbin
źródło
Działa tylko, jeśli pakiet został już zainstalowany, poniższe rozwiązanie
Thomas
3
To działa dobrze nawet na niezamontowanego pakietu jeśli zastąpi -asię -p packagename.rpm.
Larsks,
26

Na liście znajduje się pole podpisu rpm -qpi package.rpm, np .:

[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.
Brightlancer
źródło
8

Aby dowiedzieć się, który klucz GPG w Twojej bazie danych RPM podpisał określone rpm, wykonaj następujące czynności:

Wymień wszystkie klucze GPG w bazie danych RPM:

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

Najpierw upewnij się, że dane RPM podpisane kluczem w DB RPM:

$ 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

Na końcu szukasz OK, a nie „NIE OK (BRAK KLUCZY”), co oznacza, że ​​został podpisany, ale kluczem nie w twojej bazie danych RPM.

Racja, więc sprawdzane przez nas obroty zostały podpisane przez klucz w naszej bazie danych RPM.

A następnie uzyskaj identyfikator klucza, z którym podpisano rpm:

$ 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)

Teraz możesz zobaczyć, czy ostatnie 8 znaków identyfikatora klucza (tj. B1275ea3 z fadd8d64b1275ea3) odpowiada dowolnemu z 8 znaków następujących po gpg-pubkey- od pierwszego polecenia. I w tym przypadku tak jest!

A potem masz klucz, o który chodzi, więc:

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

aby zobaczyć w tym przykładzie, że to klucz HP podpisał tę prędkość obrotową.

Mam nadzieję że to pomoże. Zajęło mi to trochę czasu, żeby się domyślić. :-)

Seekoei
źródło
5

Wystaw less <rpm file>i sprawdź Signaturewpis, np .:

[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
Sirex
źródło