Bir RPM paketinin hangi GPG anahtarının imzalandığını nasıl anlarım?


26

Bir RPM'nin şifreleme imzası rpm -Kkomutla doğrulanabilir . Bu, gpg(veya pgp) içeren bir dize döndürür OKve imza RPM'nin veritabanındaysa ve geçerli ise biter .

Paket imzalanmadıysa ancak sağlama toplamları geçerliyse, yine de alacaksınız OK, ancak hayır gpg.

Paket imzalanır ancak anahtar RPM veritabanından eksikse, o kadar (GPG)(büyük harfler) ve NOT OKAY, ardından (MISSING KEYS: GPG#deadbeef).

Paket kurulumumun çalışmasını sağlamak için hangi anahtarı kurmam gerektiğini bulmak istersem kullanışlıdır.

Peki ya RPM anahtarlığımdaki anahtarlardan hangisinin verilen bir paketi imzalamak için kullanıldığını doğrulamak istersem ?

Yanıtlar:


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

Yalnızca paketi önceden yüklediyseniz çalışır, aşağıdaki Brightlancer'ın çözümü, yüklemeden önce bir imzayı kontrol etmenizi sağlar
Thomas

3
Değiştirirseniz -a, kaldırılan bir paket için bile gayet iyi çalışır -p packagename.rpm.
larsks

26

rpm -qpi package.rpmÖrneğin: ile listelenen bir İmza alanı var :

[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.

8

RPM DB'nizde hangi GPG anahtarının belirli bir rpm imzaladığını bulmak için şunu yapın:

RPM DB'nizdeki tüm GPG anahtarlarını listeleyin:

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

İlk söz konusu devir sağlamak olduğunu da RPM DB bir anahtar ile imzalanmış:

$ 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

Sonunda Tamam'ı arıyorsunuz ve 'TAMAM DEĞİL (MISSING ANAHTARLARI' değil), bunun imzalandığı anlamına gelir, ancak RPM DB'nizde olmayan bir anahtarla.

Doğru, yani kontrol ettiğimiz rpm RPM DB'mizde bir anahtarla imzalandı.

Ardından, rpm'nin imzalandığı Anahtar Kimliğini alın:

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

Şimdi , Anahtar Kimliğin son 8 karakterinin (yani, fadd8d64b1275ea3'deki b1275ea3) ilk komuttaki gpg-pubkey'i izleyen 8 karakterden herhangi birine karşılık gelip gelmediğini görebilirsiniz. Ve bu durumda, öyle!

Ve sonra söz konusu anahtarınız var, öyle:

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

Bu örnekte, bu rpm'yi imzalayan HP'nin anahtarı olduğunu görmek için.

Bu yardımcı olur umarım. Anlamanız biraz zaman aldı. :-)


5

Sayı less <rpm file>ve check Signature,: örn girişi

[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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.