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.

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"
}

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


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.