ฉันจะบอกได้อย่างไรว่าคีย์ GPG ใดที่แพ็คเกจ RPM ลงชื่อด้วย


26

ลายเซ็นการเข้ารหัสลับของ RPM สามารถตรวจสอบได้ด้วยrpm -Kคำสั่ง ส่งคืนสตริงที่มีgpg(หรือpgp) และสิ้นสุดลงOKหากลายเซ็นอยู่ในฐานข้อมูลของ RPM และถูกต้อง

ถ้าแพคเกจไม่ได้ลงนาม แต่ checksums ถูกต้องคุณจะยังคงได้รับแต่ไม่มีOKgpg

ถ้าแพคเกจมีการลงนาม แต่ที่สำคัญจะหายไปจากฐานข้อมูล RPM คุณจะได้รับ(GPG)(ตัวพิมพ์ใหญ่) และตามด้วยNOT OKAY(MISSING KEYS: GPG#deadbeef)

มันมีประโยชน์ถ้าฉันต้องการทราบว่าฉันควรหาคีย์ใดเพื่อติดตั้งเพื่อให้การติดตั้งแพคเกจของฉันทำงานได้

แต่ถ้าฉันต้องการตรวจสอบว่ามีหลายคีย์ใน RPM keyring ของฉันที่ใช้ในการลงนามในแพ็คเกจหรือไม่?

คำตอบ:


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

ใช้งานได้เฉพาะเมื่อคุณติดตั้งแพคเกจแล้วโซลูชันของ Brightlancer ด้านล่างอนุญาตให้คุณตรวจสอบลายเซ็นก่อนการติดตั้ง
Thomas

3
นี้ทำงานได้ดีแม้สำหรับแพคเกจการยกเลิกการติดตั้งถ้าคุณแทนที่ด้วย-a -p packagename.rpm
ลาร์สก์

26

มีฟิลด์ลายเซ็นที่แสดงรายการผ่าน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.

8

ในการค้นหาว่าคีย์ GPG ใดใน RPM DB ของคุณได้ลงชื่อ specfic rpm ให้ทำสิ่งนี้:

แสดงรายการคีย์ GPG ทั้งหมดใน RPM DB ของคุณ:

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

ก่อนอื่นให้แน่ใจว่ามีการลงชื่อรอบต่อนาทีที่มีปัญหาด้วยรหัสใน 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

คุณกำลังมองหาตกลงในตอนท้ายและไม่ 'ไม่ตกลง (คีย์ที่หายไป' ซึ่งจะหมายความว่ามันได้รับการลงนาม แต่โดยคีย์ไม่ได้อยู่ใน RPM DB ของคุณ

ถูกต้องดังนั้นรอบต่อนาทีที่เรากำลังตรวจสอบได้รับการลงนามโดยคีย์ใน RPM DB ของเรา

จากนั้นรับรหัสคีย์ที่ 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)

ตอนนี้คุณสามารถดูได้ว่าอักขระ 8 ตัวสุดท้ายของรหัสคีย์ (เช่น b1275ea3 จาก fadd8d64b1275ea3) สอดคล้องกับอักขระ 8 ตัวใด ๆ ที่ตามหลัง gpg-pubkey- จากคำสั่งแรก และในกรณีนี้มันทำ!

แล้วคุณมีกุญแจสำคัญในคำถามดังนั้นทำ:

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

เพื่อดูในตัวอย่างนี้มันเป็นกุญแจสำคัญของ HP ที่ลงนามรอบต่อนาทีนี้

หวังว่านี่จะช่วยได้ เอาฉันไปคิดดู :-)


5

ออก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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.