我已经使用以下方法成功解密了一个文件:
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
有什么不同的方法吗?
有这样的错误: gpg:解密失败:没有密钥
只是意味着您的 gpg 密钥环中没有私钥或秘密密钥。您可能需要先检查是否:
导入它然后相信它。
要信任,请使用:
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
密码的值是我在测试中用来解密上述内容的实际值,而不是变量。在生成密钥期间创建的相同内容,实际建议是使用更长的字符集,但实际上可以接受任何数字。
出现如下错误:
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
一样
也许你遇到的问题是因为 gpg 正在调用默认密钥环,提示输入密码......使用下面的命令来获取你需要的东西,我希望这可以帮助你。
$ gpg --batch --no-default-keyring --no-keyring --passphrase="<your-passphrase>" -r <your-key-id> -d <your-encrypted-file>
你可以试试这个命令:
gpg --output File.txt --batch--passphrase-fd YourPassword --decrypt file.pgp