GPG在不要求密码的情况下解密文件。

我运行了gpg -c file命令。它要求输入密码(两次),然后创建了一个加密文件。到目前为止一切都好。
但是,当我运行gpg file.gpg来解密文件时,它却在不要求密码的情况下解密了!不用说,这种"加密"完全没有任何价值。
GPG加密在GNOME和命令行中一直正常工作,但突然间出现了问题,我不知道自己做了什么或发生了什么。
如何修复这个问题?
2个回答

该短语已被GPG代理缓存。
要清除缓存,只需运行以下命令。
gpg-connect-agent reloadagent /bye

加密并不是毫无价值的,因为在注销时缓存将被清除,并且显然不会随文件一起传输。Gpg主要用于保护数据在传输过程中,而不是防止已登录用户解密它。

GPG代理缓存密钥,请参阅gpg(1)的手册页。
--symmetric
 -c
        Encrypt with a symmetric cipher using a passphrase. [..]  gpg
        caches the passphrase used for symmetric encryption so that a decrypt
        operation may not require that the user needs to enter the passphrase.
        The option --no-symkey-cache can be used to disable this feature.

要禁用缓存以进行单个调用,可以使用类似以下的方法:
gpg -c --no-symkey-cache your-file.txt

要使此设置持久化,将选项(不包括--)添加到~/.gnupg/gpg.conf中。
no-symkey-cache

2我尝试了,但不起作用。 gpg: 无效选项 "--no-symkey-cache"。 - JothamB
4--no-symkey-cache 选项在gpg 2.2.7中被添加。您需要Ubuntu 18.10或更高版本才能使用该选项。 - wisbucky