13

Я пытаюсь расшифровать файл с помощью GnuPG, но при использовании команды ниже:

gpg --decrypt filename.gpg

Я получаю следующее сообщение:

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

У меня уже есть закрытый ключ, которым файл был зашифрован, но я не уверен, как я могу указать его. Можно ли включить какой-либо параметр при расшифровке, чтобы указать на этот ключ?

3 ответа3

12

У меня уже есть закрытый ключ, которым файл был зашифрован, но я не уверен, как я могу указать его.

Я понимаю это как «У меня есть файл, содержащий закрытый ключ, но я не знаю, как сказать GnuPG использовать его».

GnuPG требует, чтобы ключи (как публичные, так и частные) были сохранены в связке ключей GnuPG. Это так же просто, как

gpg --import [keyfile]

После этого вы сможете расшифровать файл точно так, как вы уже пробовали.

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
1

Вам не нужно явно объявлять секретный ключ в команде gpg decrypt. Если пара ключей - как открытый, так и закрытый ключи - как указано в Jens-состояниях, присутствует на связке ключей на хосте, на котором вы расшифровываете, GPG автоматически определит секретный ключ, необходимый для дешифрования, и представит запрос пароля.

ОДНАКО, если вы хотите попробовать все (не кэшированные) ключи (возможно, вы тестируете файл, зашифрованный несколькими ключами), используйте переключатель --try-all-secrets чтобы циклически перебирать все секретные ключи в вашем наборе ключей, пробуя их в очередь. то есть:

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

HTH- Терренс

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .