Sistem yapılandırma yönetimi araçlarımızın bazı yönlerini doğrulamak için gpg imzalarını kullanmak istiyoruz. Ayrıca, bağımsız sysadmin anahtarlarının bir ana imzalama anahtarıyla imzalandığı bir "güven" modeli kullanmak istiyoruz ve daha sonra sistemlerimiz bu ana anahtara güveniyor (ve sistem yöneticilerimiz tarafından imzaları doğrulamak için "güven ağını" kullanıyor).
Bu bize birileri terk ettiğinde bir anahtara olan güveni kolayca iptal etme yeteneği gibi çok fazla esneklik sağlar, ancak bir sorunla karşılaştık. İken gpg
komut edecek anlatmak anahtar güvenilmeyen ise size, gerçeği gösteren bir çıkış kodu geri dönmek için görünmüyor. Örneğin:
# 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
Önemsediğimiz kısım şudur:
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Bu durumda gpg tarafından döndürülen çıkış kodu, güven hatasına rağmen 0'dır:
# echo $?
0
Güvenilmeyen bir imzayla bir şey imzalanması durumunda gpg'nin nasıl başarısız olmasını sağlayabiliriz?
gpgv
Komutun uygun bir çıkış kodu döndüreceği konusunda bazı öneriler gördüm , ancak ne yazık ki gpgv
anahtar sunucularından anahtarları nasıl alacağımı bilmiyor. Sanırım durum çıktısını (--status-fd kullanarak) ayrıştırabiliriz gpg
, ancak daha iyi bir yol var mı?