在没有提示的情况下解密 .gpg/.pgp 文件

问题描述 投票:0回答:4

我已经使用以下方法成功解密了一个文件:

gpg --encrypt --recipient [email protected] myfile.txt 

如果我运行下面的命令,系统会提示我输入密码,并且解密有效:

gpg --output decrypted_myfile.txt -decrypt myfile.txt.gpg

我似乎无法获得任何形式的非交互式解密工作。我最接近的是:

gpg --decrypt --batch --passphrase MYPASSPHRASE myfile.txt.gpg

这给了我:

gpg: encrypted with 2048-bit RSA key, ID F6CF3C25, created 2016-03-17
      "Company_20210316 (Incoming Files) <[email protected]>"
gpg: public key decryption failed: Bad passphrase
gpg: decryption failed: No secret key

有什么不同的方法吗?

encryption gnupg pgp
4个回答
0
投票

有这样的错误: gpg:解密失败:没有密钥

只是意味着您的 gpg 密钥环中没有私钥或秘密密钥。您可能需要先检查是否:

  • gpg --list-secret-keys 如果那里有私钥,如果没有,

导入它然后相信它。

要信任,请使用:

gpg --key-edit <yourKey> then "trust" then "5" then "quit"

要运行您的 keyID:

gpg --edit-key <yourKey> then

在第一行你会看到:“Private key available” 然后拳头左边的两个子键,你会看到类似于:

sec rsa2048/E7E43C5C844E2917

和斜杠后面的部分 - 将是您的

E7E43C5C844E2917

所以要明确地从生成的地方导出文件的密钥,您需要像这样使用它:

gpg --export-secret-keys --armor E7E43C5C844E2917>yourSecretKey.asc

这将仅在文件中创建一个密钥,这与您在导出调用中使用密钥名不同。然后它将包含更多。 然后导入使用:

gpg --import yourSecretKey.asc

然后在更新的列表中检查您的密钥。如果需要,添加信任。

然后行解密从我的 MAC 终端复制并测试工作,没有提示:

 gpg --batch --passphrase MyPassphrase -o test.tt7 -d CE.txt.gpg

注意:-d 与 --decrypt 和

相同
        -o the same as --output

密码的值是我在测试中用来解密上述内容的实际值,而不是变量。在生成密钥期间创建的相同内容,实际建议是使用更长的字符集,但实际上可以接受任何数字。


0
投票

出现如下错误:

gpg: decryption failed: No secret key
只是意味着您的 gpg 密钥环中没有私钥或秘密密钥。您可能需要先检查
gpg -k
(与
gpg --list-keys
相同)是否有私钥并导入它然后信任它,

要添加信任,请使用“1 到 5”:

gpg --key-edit <yourKey> 

然后

trust
然后
5
然后`退出

要运行您的 keyID:

gpg --edit-key <yourKey>

然后第一行你会看到:

Private key available
然后你会看到拳头左侧的两个子键
sec rsa2048/E7E43C5C844E2917
和斜杠后右边的部分 - 将是你的
<keyID> E7E43C5C844E2917
因此,要明确地从生成它的地方导出,您需要使用的文件的密钥:

gpg --export-secret-keys --armor E7E43C5C844E2917>yourSecretKey.asc

这只会在文件中创建密钥,不像在导出调用中使用密钥名那么它将包含更多内容。

然后导入使用:

gpg --import E7E43C5C844E2917

然后在更新的列表中检查您的密钥。如果需要,添加信任。

然后行解密从我的 MAC 终端复制并测试工作,没有提示:

gpg --batch --passphrase MyPassphrase -o test.tt7 -d CE.txt.gpg

注意:

-d
--decrypt
相同就像
-o
--output

一样

0
投票

也许你遇到的问题是因为 gpg 正在调用默认密钥环,提示输入密码......使用下面的命令来获取你需要的东西,我希望这可以帮助你。

$ gpg --batch --no-default-keyring --no-keyring --passphrase="<your-passphrase>" -r <your-key-id> -d <your-encrypted-file>

-1
投票

你可以试试这个命令:

gpg --output File.txt --batch--passphrase-fd YourPassword  --decrypt file.pgp
© www.soinside.com 2019 - 2024. All rights reserved.