Come si verifica una firma gpg (cli ow/nodo js) senza installare la chiave pubblica? Ho la chiave pubblica ma non voglio aggiungerla al portachiavi. Qualche suggerimento?verificare la firma del gpg senza installare la chiave
Grazie, Florian
Come si verifica una firma gpg (cli ow/nodo js) senza installare la chiave pubblica? Ho la chiave pubblica ma non voglio aggiungerla al portachiavi. Qualche suggerimento?verificare la firma del gpg senza installare la chiave
Grazie, Florian
Ecco uno script di shell che uso solo per tale scopo. Crea un portachiavi temporaneo, installa la chiave pubblica specificata, esegue il comando specificato, quindi elimina il portachiavi temporaneo.
Si noti che questo installa la chiave da un server delle chiavi. Non dovrebbe essere difficile modificarlo per usare una chiave che hai già sul disco (e dovrei aggiungere un'opzione per farlo).
Update: Vedere https://github.com/Keith-S-Thompson/gpg-tmp
#!/bin/sh
keyid=$1
shift
case "$keyid" in
????????)
;;
*)
echo "Usage: $0 key args..." 1>&2
exit 1
esac
tmp_keyring=$HOME/$keyid-keyring.gpg
gpg --no-default-keyring --keyring $tmp_keyring --recv-keys $keyid
gpg --no-default-keyring --keyring $tmp_keyring "[email protected]"
rm -f $tmp_keyring
Si comporta come il comando gpg
, ma richiede un argomento extra iniziale specificando l'8 cifre id chiave.
utilizzo Esempio:
$ gpg coreutils-8.9.tar.gz.sig
gpg: Signature made Tue 04 Jan 2011 07:04:25 AM PST using RSA key ID 000BEEEE
gpg: Can't check signature: public key not found
$ gpg-tmp 000BEEEE coreutils-8.9.tar.gz.sig
gpg: keyring `/home/kst/000BEEEE-keyring.gpg' created
gpg: requesting key 000BEEEE from hkp server subkeys.pgp.net
gpg: key 000BEEEE: public key "Jim Meyering <[email protected]>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
gpg: Signature made Tue 04 Jan 2011 07:04:25 AM PST using RSA key ID 000BEEEE
gpg: Good signature from "Jim Meyering <[email protected]>"
gpg: aka "Jim Meyering <[email protected]>"
gpg: aka "Jim Meyering <[email protected]>"
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: 155D 3FC5 00C8 3448 6D1E EA67 7FD9 FCCB 000B EEEE
Tenete a mente che questo ti dice assolutamente nulla circa l'affidabilità della chiave, ma è utile come un controllo di integrità.
(Mi chiedo quante chiavi Jim Meyering generato prima che arrivasse quello.)
non ho bisogno di molto, gpg --dry-run
(o gpg -n
) ha lavorato per me. Stavo eseguendo gpg 1.4.12 su Mac tramite Homebrew, ma sembra essere un'opzione standard. Non ho idea di come si possa paragonare ad altri metodi menzionati qui.
Questo non funziona per me (gpg 1.4.16, Linux Mint 17). 'gpg --dry-run coreutils-8.9.tar.gz.sig' mi dà" 'gpg: Can not check signature: chiave pubblica non trovata'". (Non ho la chiave di Jim Meyering nel mio portachiavi.) –
Huh. Hai ragione. Due anni dopo, non posso riprodurlo. Ho provato quasi tutti, ad es. 'gpg --dry-run --trust-model direct --keyserver-options auto-key-retrieve --auto-key-locate keyserver --keyserver keys.gnupg.net --verify-options pka-lookups --verify coreutils-8.9.tar.gz.sig coreutils-8.9.tar.gz' ma persiste nel dire 'gpg: Impossibile controllare la firma: chiave pubblica non trovata '. Beh, suppongo che se volessi davvero evitare uno script, potresti scrivere il comando per usare invece un home/portachiavi temporaneo e cancellarlo dopo. Ma il punto di GPG sta creando fiducia: ecco perché lo rendono difficile. –
In difesa di GPG, dice "--dry-run" è mezzo implementato, che è ovviamente quello che vuoi vedere in tale funzione di sicurezza. Qui, il funzionamento a secco impedisce al comando di aggiungersi al portachiavi, il che significa che la verifica non sa mai quale chiave usare (apparentemente). Quando l'ho usato, devo aver già aggiunto una chiave, quindi la "corsa a secco" praticamente non ha fatto nulla, suppongo. (Oh e 'verify-options pka-lookups 'aggiunge solo ulteriori controlli, non si auto-scarica ...) –