在 Linux 终端中加密后清除 GPG Cache/Password

Clear GPG Cache/Password after Encryption in Linux Terminal

我对 Linux 终端中的 GPG 加密过程感到非常恼火,我使用以下命令从终端使用 GPG 加密文件:

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

由于GPG是可靠的加密包,这里推荐使用此命令

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

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

它会给出这个消息

gpg: AES256 encrypted data
gpg: encrypted with 1 passphrase

它会自动解密。所以密码存储在某个地方,在我重新启动计算机之前它不会被删除。

有没有办法在加密完成后立即clear/wipe密码?

密码由 gpg-agent 保存。 gpg 等 GPG 工具会自动启动它。

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

只需重新加载 gpg-agent(而不是杀死它)即可清除其密码缓存。它存在不同的方法来重新加载 gpg-agent:

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