gpg署名を使用して、システム構成管理ツールのいくつかの側面を検証したいと思います。さらに、個々のsysadminキーがマスター署名キーで署名される「信頼」モデルを使用し、システムはそのマスターキーを信頼します(そして、「信頼の輪」を使用してシステム管理者による署名を検証します)。
これにより、誰かが去ったときにキーの信頼を簡単に取り消すことができるなど、多くの柔軟性が得られますが、問題が発生しました。一方でgpg
、コマンドがします教えて鍵が信頼できない場合、あなたが、その旨を示す終了コードを返すように表示されません。例えば:
# 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
私たちが気にする部分はこれです:
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
この場合、gpgが返す終了コードは、信頼の失敗にもかかわらず0です。
# echo $?
0
信頼できない署名で何かが署名された場合、どうすればgpgを失敗させることができますか?
gpgv
コマンドが適切な終了コードを返すという提案を見てきましたが、残念ながらgpgv
キーサーバーからキーを取得する方法を知りません。からのステータス出力(--status-fdを使用)を解析できると思いますgpg
が、もっと良い方法はありますか?