Как указать закрытый ключ при расшифровке файла с помощью GnuPG?

Как указать закрытый ключ при расшифровке файла с помощью GnuPG?

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

gpg --decrypt filename.gpg

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

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

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

решение1

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

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

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

gpg --import [keyfile]

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

решение2

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

Вам не нужно явно указывать секретный ключ в команде gpg decrypt. Если пара ключей — оба PublicИЗакрытые ключи, как утверждает Йенс, присутствуют на связке ключей на хосте, где вы расшифровываете данные,GPG автоматически определит секретный ключ, необходимый для расшифровки, и предложит пароль.

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

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

HTH- Терренс

Связанный контент