使用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解密命令中明確聲明金鑰。如果密鑰對都是公共的私鑰 - 正如 Jens 所說,存在於您要解密的主機上的金鑰環上,GPG 將自動決定解密所需的金鑰並提出密碼質詢。

然而如果您想嘗試所有(非快取)鍵(也許您正在測試使用多個金鑰加密的文件),使用開關--try-all-secrets將循環遍歷密鑰環上的所有密鑰,依次嘗試它們。 IE:

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

HTH-泰倫斯

相關內容