Comment puis-je vérifier qu'une clé PGP est importée dans RPM?


13

On peut importer une clé avec:

rpm --import / chemin / vers / clé

Mais comment savoir plus tard si vous avez déjà importé cette clé? Essayer de la réimporter échouera avec une erreur et j'essaye d'éviter cela car j'utilise Puppet pour installer la clé.

Réponses:


10

Vous pouvez vérifier si une clé est déjà importée à l'aide de rpm -qi gpg-pubkey-<version>-<release>. S'il est installé, rpm vous donnera toutes les informations à ce sujet, sinon, il sortira simplement avec une valeur de retour de 1, vous pouvez donc ajouter à votre recette de marionnette un unlessparamètre:

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

2
Meilleure façon de trouver du code: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
La coupe vous lie à une disposition spécifique, qui ne fonctionne pas sur mon système de test RHEL6. Et gpg inclut désormais les sous-clés ainsi que la clé pub. Donc, j'ai fini par utiliserKEYID=$(gpg --throw-keyids $KEYFILE | sed -n '/^pub/s|^[^/]*/\([[:alnum:]]*\) .*|\1|p' | tr [[:upper:]] [[:lower:]])
dannysauer

5

Chaque clé importée ajoute une entrée rpmdb de gpg-pubkey-<left(hex(fingerprint), 8)>-<encoded import date>. Vérifiez simplement ce nom ( gpg-pubkey) et la version appropriée (les 8 premiers caractères de l'empreinte digitale clé en hexadécimal) dans le rpmdb.


rpm -qi gpg-pubkey-FINGERPRINT-\* > /dev/null 2>&1 (référence, y compris comment obtenir le FINGERPRINT: robinbowes.com/article.php/20081107174415581 )
Ted Zlatanov

2

Si vous souhaitez simplement vérifier que la clé est importée (sans traiter ces informations par programme), vous pouvez répertorier toutes les clés comme ceci:

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

ou pour les identifiants:

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

Cela peut sembler assez évident pour beaucoup, mais je suppose que pour certains, c'est une réponse plus directe à (au moins le titre de) la question.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.