使用 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私钥——正如 Jens 所说,它存在于你正在解密的主机的密钥环上,GPG 将自动确定解密所需的密钥并提出密码挑战。

然而如果你想尝试所有(非缓存)键(也许你正在测试一个用多个密钥加密的文件),使用开关--try-all-secrets将循环遍历密钥环上的所有密钥并依次尝试它们。即:

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

HTH- 特伦斯

相关内容