
我正在嘗試使用 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解密命令中明確聲明金鑰。如果密鑰對都是公共的和私鑰 - 正如 Jens 所說,存在於您要解密的主機上的金鑰環上,GPG 將自動決定解密所需的金鑰並提出密碼質詢。
然而如果您想嘗試所有(非快取)鍵(也許您正在測試使用多個金鑰加密的文件),使用開關--try-all-secrets
將循環遍歷密鑰環上的所有密鑰,依次嘗試它們。 IE:
gpg -d --try-all-secrets test-gpg.txt.asc
HTH-泰倫斯