GPG imzasını doğrulamak için komut dosyası


5

GPG'yi imzalanmış bir dosyaya aktarabilirsiniz; "imza iyidir" mesajı gönderir ve düz metni kaydeder:

[gh403@shillig-arch ~]$ gpg test.gpg 
gpg: Signature made Thu Nov  1 14:19:08 2012 CDT using RSA key ID D1FEC5F4
gpg: Good signature from "gh403 <gh403@***********>"

ve çıktılarına bakabilirim ve evet, gh403'ün bunu imzaladığını ve imzanın iyi olduğunu doğrulayabilirim.

Yapabilmek istediğim şey bu davranışı senaryo yazmak. Özellikle, ben imza iyi olduğunu görmek için kontrol eder bir komut dosyasına gerek ve bunun imzalanan edildiğini anahtar belli kimliği vardır.

Bunu yapmak için düz bir GPG çağrısı var mı? Yoksa daha ayrıntılı bir komut dosyasına mı ihtiyacım var? Düşünceleriniz için teşekkürler!

Yanıtlar:


7

Eğer eklerseniz --status-fd <fd>, (belirtilen dosya tanıtıcısı için gpg irade çıkışı bilgisayarda okunabilen durumu metin 1stdout'ta için). Örneğin:

$ gpg --status-fd 1 --verify authorized_keys.txt 
gpg: Signature made 2012-08-18T19:25:12 EEST
gpg:                using RSA key D24F6CB2C1B52632
[GNUPG:] SIG_ID BOn6PNVb1ya/KuUc2F9sfG9HeRE 2012-08-18 1345307112
[GNUPG:] GOODSIG D24F6CB2C1B52632 Mantas Mikulėnas <grawity@nullroute.eu.org>
gpg: Good signature from "Mantas Mikulėnas <grawity@nullroute.eu.org>"
gpg:                 aka "Mantas Mikulėnas <grawity@gmail.com>"
[GNUPG:] VALIDSIG 2357E10CEF4F7ED27E233AD5D24F6CB2C1B52632 2012-08-18 1345307112 0 4 0 1 2 00 2357E10CEF4F7ED27E233AD5D24F6CB2C1B52632
[GNUPG:] TRUST_ULTIMATE

Sonra sadece varsayılan çıkışı (yönlendirerek 2> /dev/null) atın ve kontrol edin .VALIDSIG fingerprint

Aşağıdakileri kullanıyorum:

fprint="2357E10CEF4F7ED27E233AD5D24F6CB2C1B52632"

verify_signature() {
    local file=$1 out=
    if out=$(gpg --status-fd 1 --verify "$file" 2>/dev/null) &&
       echo "$out" | grep -qs "^\[GNUPG:\] VALIDSIG $fprint " &&
       echo "$out" | grep -qs "^\[GNUPG:\] TRUST_ULTIMATE\$"; then
        return 0
    else
        echo "$out" >&2
        return 1
    fi
}

if verify_signature foo.txt; then
    ...
fi

Muhtemelen TRUST_ULTIMATEçek kaldırmanız gerekecek , ancak saklayın VALIDSIG.


Güzel. Tam olarak aradığım şey!
otuzüçüz
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.