Wie kann ich überprüfen, ob ein PGP-Schlüssel in RPM importiert wurde?


13

Man kann einen Schlüssel importieren mit:

rpm --import / path / to / key

Aber wie können Sie später feststellen, ob Sie diesen Schlüssel bereits importiert haben? Der Versuch, ihn erneut zu importieren, schlägt mit einem Fehler fehl, und ich versuche, dies zu vermeiden, da ich Puppet verwende, um den Schlüssel zu installieren.

Antworten:


10

Mit können Sie überprüfen, ob ein Schlüssel bereits importiert wurde rpm -qi gpg-pubkey-<version>-<release>. Wenn es installiert ist, gibt rpm alle Informationen darüber aus. Andernfalls wird es nur mit dem Rückgabewert 1 beendet, sodass Sie Ihrem Puppenrezept einen unlessParameter hinzufügen können :

exec { "rpm --import /path/to/package":
  # ...
  unless => "rpm -qi gpg-pubkey-<version>-<release> > /dev/null 2>&1"
}

2
Besserer Weg durch einen Code, den ich gefunden habe:KEYFILE=/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release; KEYID=$(echo $(gpg --throw-keyids < $KEYFILE)|cut -c11-18|tr [A-Z] [a-z]); rpm -q gpg-pubkey-$KEYID
LSD

2
Der Schnitt bindet Sie an ein bestimmtes Layout, das auf meinem RHEL6-Testsystem nicht funktioniert. Und gpg enthält jetzt neben dem Pub-Key auch Sub-Keys. Also habe ichKEYID=$(gpg --throw-keyids $KEYFILE | sed -n '/^pub/s|^[^/]*/\([[:alnum:]]*\) .*|\1|p' | tr [[:upper:]] [[:lower:]])
dannysauer

5

Jeder importierte Schlüssel fügt einen rpmdb-Eintrag von hinzu gpg-pubkey-<left(hex(fingerprint), 8)>-<encoded import date>. Überprüfen Sie einfach den Namen ( gpg-pubkey) und die entsprechende Version (die ersten 8 Zeichen des Schlüsselfingerabdrucks in hex) in der rpmdb.


rpm -qi gpg-pubkey-FINGERPRINT-\* > /dev/null 2>&1 (Hinweis, einschließlich, wie Sie die FINGERPRINT: robinbowes.com/article.php/20081107174415581 )
Ted Zlatanov

2

Wenn Sie nur überprüfen möchten, ob der Schlüssel importiert wurde (ohne diese Informationen programmgesteuert zu verarbeiten), können Sie alle Schlüssel wie folgt auflisten:

rpm -qi gpg-pubkey-\* | grep -E ^Packager

oder für die IDs:

rpm -qi gpg-pubkey-\* | grep -E "^Version  "

Dies mag vielen offensichtlich erscheinen, aber ich nehme an, dass es für einige eine direktere Antwort auf die Frage (zumindest in der Überschrift) ist.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.