如何防止 gnupg 自动解密文件?

如何防止 gnupg 自动解密文件?

我在 OSX 10.13.4 上,我正在学习如何从终端使用 gnupg。我用

gpg --cipher-algo AES256 -c input.txt -o output.gpg

它要求我输入密码,我输入了一个密码,文件现在已加密。但是,当我发出命令时,gpg -d output.gpg它解密了它,而没有要求我输入密码 ?_?

我该如何防止这种情况发生?

编辑

下列的我已经开始max-cache-ttl 0并且.gnupg/gpg-agent.conf它似乎起作用了,有人能确认这确实是正确的做法吗?

答案1

max-cache-ttl 0在文件中进行设置.gnupg/gpg-agent.conf似乎是一个好的解决方案。特别是因为它有效。

还有 gpg-agent 选项,--no-allow-external-cache其作用是:

告诉 Pinentry 不要启用使用外部缓存密码的功能。

某些桌面环境倾向于使用一个主密码解锁所有凭据,并且可能安装了 Pinentry,它使用额外的外部缓存来实现这种策略。使用此选项时,建议 Pinentry 不要使用此类缓存,而是 总是向用户询问所请求的密码。

声音好像它应该总是要求输入密码,但它似乎没有这样做。或者,它只在存在外部缓存时才询问。

或者,您可以继续让 gpg-agent 缓存密码,但在需要时通过发送信号SIGHUP(使用killkillallpkill等)清除它们:

此信号会刷新所有缓存的密码,如果程序已使用配置文件启动,则会再次读取配置文件。仅遵守某些选项:quiet、verbose、debug、debug-all、debug-level、debug-pinen-try、no-grab、pinentry-program、pinentry-invisible-char、default-cache-ttl、max-cache-ttl、ignore-cache-for-signing、no-allow-external-cache、allow-emacs-pinen-try、no-allow-mark-trusted、disable-scdaemon 和 disable-check-own-socket。scdaemon-program 也受支持,但由于当前实现仅调用 scdaemon 一次,因此除非您手动终止 scdaemon,否则它没什么用处

答案2

另一种方法是仅禁用对称加密/解密(不使用公钥/私钥对)的缓存。您可以每次使用命令行选项执行此操作:

gpg --no-symkey-cache -c input.txt
gpg --no-symkey-cache -d output.gpg

或者您可以添加no-symkey-cache~/.gnupg/gpg.conf,这样您就不需要每次都添加到命令行。请注意,该--no-symkey-cache功能需要gpg 2.2.7或 更高版本。

如果您只想禁用不涉及公钥/私钥对的对称加密/解密的缓存,则此解决方案更好。它仍将缓存公钥/私钥对的密码。

相关内容