Comment spécifier la clé privée lors du décryptage d'un fichier à l'aide de GnuPG?


22

J'essaie de décrypter un fichier avec GnuPG, mais lorsque j'utilise la commande ci-dessous:

gpg --decrypt filename.gpg

J'obtiens le message suivant:

gpg: encrypted with RSA key, ID 3662FD5E
gpg: decryption failed: No secret key

J'ai déjà la clé privée avec laquelle le fichier a été chiffré, mais je ne sais pas comment le spécifier. Y a-t-il une option que je peux inclure lors du décryptage pour pointer vers cette clé?


1
Qu'est-ce que l' gpg --list-secret-keys 0x3662FD5Eimpression?
Jonas Schäfer

Non, non. Existe-t-il un moyen de l'ajouter?

Comment avez-vous obtenu la clé privée?
Jonas Schäfer

Que représente réellement cet ID?
Nishant

Réponses:


17

J'ai déjà la clé privée avec laquelle le fichier a été chiffré, mais je ne sais pas comment le spécifier.

Je comprends cela comme "J'ai un fichier contenant la clé privée, mais je ne sais pas comment dire à GnuPG de l'utiliser".

GnuPG nécessite que les clés (publiques et privées) soient stockées dans le trousseau de clés GnuPG. C'est aussi simple que

gpg --import [keyfile]

Ensuite, vous devriez pouvoir décrypter le fichier exactement comme vous l'avez déjà essayé.


5
Le gpg est-il donc assez intelligent pour savoir quelle clé déchiffrer une fois que vous avez importé plusieurs clés?
RollRoll

Oui. Habituellement, la clé est même référencée dans le fichier crypté, sinon GnuPG essaie toutes les clés.
Jens Erat

J'utilise GnuPG par programme et j'ai un trousseau de clés avec des centaines de clés privées et les messages peuvent être chiffrés avec des dizaines d'entre eux. Il semble un peu inutile de simplement les essayer tous (en fait, il essaie de les déverrouiller tous en utilisant la phrase de passe donnée et prend la première qui fonctionne).
jlh

2
GnuPG ne les essaie que si la clé a été cachée par la partie émettrice. Il semble que votre cas d'utilisation ne soit pas l'une des cibles de conception de GnuPG. Si vous connaissez la bonne clé privée bien qu'elle ne soit pas stockée dans le fichier chiffré, envisagez plutôt de gérer différents répertoires / porte-clés GnuPG avec une seule clé privée.
Jens Erat

Oui, il semble que mon cas d'utilisation ne soit pas bien adapté au gpg. Pour être complet, voici une observation plus détaillée: mes identifiants de destinataire ne sont pas masqués (n'utilisant pas -R), donc gpg sait laquelle des douze clés peut-être il doit essayer, il n'a pas besoin d'essayer le trousseau de clés en entier. Cependant, gpg ne sait pas pour quelle clé j'ai fourni la phrase secrète, il doit donc essayer ces douzaines de clés, ce qui ralentit considérablement les choses.
jlh

6
bash-4.2$ gpg --import b_secret.key
gpg: key 23E7859B: already in secret keyring
gpg: Total number processed: 1
gpg:       secret keys read: 1
gpg:  secret keys unchanged: 1
bash-4.2$ gpg --decrypt b_txt.asc
gpg: key 23E7859B: secret key without public key - skipped
gpg: encrypted with RSA key, ID 04702E37
gpg: decryption failed: secret key not available

3
Bienvenue sur SuperUser, votre suggestion est déjà dans une autre réponse. Vous devriez voter pour cette réponse au lieu d'en créer une nouvelle. Vous n'avez pas encore assez de réputation pour le faire, attendez.
Vlastimil Ovčáčík

2

Vous n'avez pas besoin de déclarer expressément la clé secrète dans la commande gpg decrypt. Si la paire de clés - les clés publiques ET privées - comme les états Jens sont présentes sur le trousseau de clés sur l'hôte où vous déchiffrez, GPG déterminera automatiquement la clé secrète requise pour le déchiffrement et présentera un défi de mot de passe.

TOUTEFOIS, si vous souhaitez essayer toutes les clés (non mises en cache) ( vous testez peut-être un fichier chiffré avec plusieurs clés ), l'utilisation du commutateur --try-all-secretsfera défiler toutes les clés secrètes de votre trousseau en les essayant tour à tour. c'est à dire:

gpg -d --try-all-secrets test-gpg.txt.asc

HTH- Terrence

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.