Jak mogę sprawdzić, czy klucz PGP jest importowany do RPM?

13

Klucz można zaimportować za pomocą:

rpm --import / path / to / key

Ale jak później stwierdzić, czy już zaimportowałeś ten klucz? Próba ponownego zaimportowania zakończy się niepowodzeniem z błędem i staram się tego uniknąć, ponieważ używam Puppet do zainstalowania klucza.

Matthew Scharley
źródło

Odpowiedzi:

10

Możesz dwukrotnie sprawdzić, czy klucz jest już zaimportowany za pomocą rpm -qi gpg-pubkey-<version>-<release>. Jeśli jest zainstalowany, rpm poda ci wszystkie informacje na jego temat, jeśli nie, po prostu wyjdzie ze zwracaną wartością 1, abyś mógł dodać do swojej receptury marionetkowej unlessparametr:

exec { "rpm --import /path/to/package":
  # ...
  unless => "rpm -qi gpg-pubkey-<version>-<release> > /dev/null 2>&1"
}
Torian
źródło
2
Znalazłem lepszy sposób przez jakiś kod: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
Cięcie wiąże cię z określonym układem, który nie działa w moim systemie testowym RHEL6. A gpg zawiera teraz podklucze, a także klucz pub. Więc skończyłem używaćKEYID=$(gpg --throw-keyids $KEYFILE | sed -n '/^pub/s|^[^/]*/\([[:alnum:]]*\) .*|\1|p' | tr [[:upper:]] [[:lower:]])
dannysauer
5

Każdy zaimportowany klucz dodaje wpis rpmdb gpg-pubkey-<left(hex(fingerprint), 8)>-<encoded import date>. Po prostu sprawdź tę nazwę ( gpg-pubkey) i odpowiednią wersję (pierwsze 8 znaków odcisku palca klucza w postaci szesnastkowej) w rpmdb.

Ignacio Vazquez-Abrams
źródło
rpm -qi gpg-pubkey-FINGERPRINT-\* > /dev/null 2>&1 (odniesienie, w tym jak uzyskać FINGERPRINT: robinbowes.com/article.php/20081107174415581 )
Ted Zlatanov
2

Jeśli chcesz tylko sprawdzić, czy klucz został zaimportowany (bez programowego przetwarzania tych informacji), możesz wymienić wszystkie klucze w następujący sposób:

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

lub dla identyfikatorów:

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

Dla wielu może się to wydawać oczywiste, ale dla niektórych jest to bardziej bezpośrednia odpowiedź na (przynajmniej nagłówek) pytania.

TNT
źródło