在Linux终端中加密后,清除GPG缓存/密码

11

我很烦恼Linux终端中的GPG加密过程,我使用以下命令从终端使用GPG加密文件:

gpg --output file_out --symmetric --cipher-algo AES256 file_in

由于GPG是可靠的加密软件包,因此建议在此处使用此命令。

问题是,在输入密码并加密文件后,密码不会被删除。 因此,任何有权访问计算机的人都可以解密这个文件,它只能在我重新启动计算机后才会被删除。

因此,如果我在加密后立即输入解密命令: gpg --output file_in --decrypt file_out

会出现以下信息

gpg: AES256 encrypted data
gpg: encrypted with 1 passphrase

它会自动解密。 因此,密码存储在某个地方,直到我重新启动计算机才会被删除。

有没有办法在加密完成后立即清除/擦除密码?


2
Stack Overflow是一个关于编程和开发问题的网站。这个问题似乎不属于编程或开发范畴。请参阅帮助中心中的我可以在这里问什么样的问题。也许超级用户Unix&Linux Stack Exchange更适合提问。 - jww
3个回答

11

重新加载 gpg-agent(而不是杀死它)可以清除其密码短语缓存。有多种方法可以重新加载gpg-agent

  • echo RELOADAGENT | gpg-connect-agent
  • gpgconf --reload gpg-agent
  • pkill -SIGHUP gpg-agent

这是一个比被接受的答案更好的解决方案。谢谢。 - tobi

4

口令短语由 gpg-agent 保存。像 gpg 这样的 GPG 工具会自动启动它。

使用 gpgconf --kill gpg-agent 停止代理程序。


3

或者,您可以添加--no-symkey-cache选项,以禁用用于对称加密和解密的密码短语缓存。

gpg --no-symkey-cache --output file_out --symmetric --cipher-algo AES256 file_in

类似这样的东西。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接