Come posso verificare che una chiave PGP sia importata in RPM?


13

Si può importare una chiave con:

rpm --import / path / to / key

Ma come puoi sapere in seguito se hai già importato questa chiave? Tentare di reimportare fallirà con un errore e sto cercando di evitarlo mentre sto usando Puppet per installare la chiave.

Risposte:


10

Puoi ricontrollare se una chiave è già stata importata usando rpm -qi gpg-pubkey-<version>-<release>. Se è installato, rpm ti fornirà tutte le informazioni a riguardo, in caso contrario, uscirà semplicemente con un valore di ritorno di 1, quindi potresti aggiungere un unlessparametro alla tua ricetta fantoccio :

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

2
Modo migliore attraverso un po 'di codice che ho trovato: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
Il taglio ti lega a un layout specifico, che non funziona sul mio sistema di test RHEL6. E ora gpg include le chiavi secondarie e la chiave pub. Quindi, ho finito per usareKEYID=$(gpg --throw-keyids $KEYFILE | sed -n '/^pub/s|^[^/]*/\([[:alnum:]]*\) .*|\1|p' | tr [[:upper:]] [[:lower:]])
dannysauer il

5

Ogni chiave importata aggiunge una voce rpmdb di gpg-pubkey-<left(hex(fingerprint), 8)>-<encoded import date>. Basta cercare quel nome ( gpg-pubkey) e la versione appropriata (i primi 8 caratteri dell'impronta digitale della chiave in esadecimale) in rpmdb.


rpm -qi gpg-pubkey-FINGERPRINT-\* > /dev/null 2>&1 (riferimento, incluso come ottenere FINGERPRINT: robinbowes.com/article.php/20081107174415581 )
Ted Zlatanov,

2

Se vuoi solo verificare che la chiave sia importata (senza elaborare a livello di codice queste informazioni) puoi elencare tutte le chiavi in ​​questo modo:

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

o per gli ID:

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

Questo può sembrare abbastanza ovvio per molti, ma suppongo che per alcuni sia una risposta più diretta alla (almeno il titolo della) domanda.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.