Nous aimerions utiliser des signatures gpg pour vérifier certains aspects de notre système outils de gestion de la configuration du système. De plus, nous aimerions utiliser un modèle de "confiance" dans lequel les clés individuelles des administrateurs et nos systèmes font confiance à cette clé principale (et à l'utilisateur). utilisent le "réseau de confiance" pour valider les signatures de nos administrateurs système).
Cela nous donne beaucoup de flexibilité, comme la possibilité de facilement révoquer la confiance sur une clé quand quelqu'un part, mais nous avons rencontré un problème. Alors que le gpg
La commande dire à vous si une clé est non fiable, il ne semble pas retourner un code de sortie indiquant cette ce fait. Par exemple :
# gpg -v < foo.asc
Version: GnuPG v1.4.11 (GNU/Linux)
gpg: armor header:
gpg: original file name=''
this is a test
gpg: Signature made Fri 22 Jul 2011 11:34:02 AM EDT using RSA key ID ABCD00B0
gpg: using PGP trust model
gpg: Good signature from "Testing Key <someone@example.com>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: ABCD 1234 0527 9D0C 3C4A CAFE BABE DEAD BEEF 00B0
gpg: binary signature, digest algorithm SHA1
La partie qui nous intéresse est la suivante :
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Le code de sortie renvoyé par gpg dans ce cas est de 0, malgré la confiance de confiance :
# echo $?
0
Comment faire pour que gpg échoue dans le cas où quelque chose est signé avec une signature non fiable ?
J'ai vu certaines suggestions selon lesquelles le gpgv
retournera un code de sortie correct, mais malheureusement, la commande gpgv
ne sait pas comment récupérer les clés des serveurs de clés. Je suppose que nous pouvons analyser la sortie d'état (en utilisant --status-fd) de gpg
mais y a-t-il un meilleur moyen ?