¿Cómo puedo verificar que una clave PGP se importe a RPM?


13

Se puede importar una clave con:

rpm --import / path / to / key

Pero, ¿cómo puede saber más adelante si ya ha importado esta clave? Intento reimportarlo fallará con un error y estoy tratando de evitarlo ya que estoy usando Puppet para instalar la clave.

Respuestas:


10

Puede verificar si una clave ya se ha importado usando rpm -qi gpg-pubkey-<version>-<release>. Si está instalado, rpm le dará toda la información al respecto, de lo contrario, saldrá con un valor de retorno de 1, por lo que podría agregar a su receta de títeres un unlessparámetro:

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

2
Mejor manera a través de algún código que encontré: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
El corte lo vincula a un diseño específico, que no funciona en mi sistema de prueba RHEL6. Y gpg ahora incluye subclaves, así como la clave de pub. Así que terminé usandoKEYID=$(gpg --throw-keyids $KEYFILE | sed -n '/^pub/s|^[^/]*/\([[:alnum:]]*\) .*|\1|p' | tr [[:upper:]] [[:lower:]])
dannysauer

5

Cada clave importada agrega una entrada rpmdb de gpg-pubkey-<left(hex(fingerprint), 8)>-<encoded import date>. Simplemente verifique ese nombre ( gpg-pubkey) y la versión apropiada (los primeros 8 caracteres de la huella digital clave en hexadecimal) en el rpmdb.


rpm -qi gpg-pubkey-FINGERPRINT-\* > /dev/null 2>&1 (referencia, incluyendo cómo obtener el FINGERPRINT: robinbowes.com/article.php/20081107174415581 )
Ted Zlatanov

2

Si solo desea verificar que la clave se importa (sin procesar esta información mediante programación), puede enumerar todas las claves de esta manera:

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

o para los identificadores:

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

Esto puede parecer bastante obvio para muchos, pero supongo que para algunos es una respuesta más directa a (al menos el titular) de la pregunta.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.