
Я пытаюсь расшифровать файл с помощью 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- Терренс