如果你想避免这样的 GPG 密码提示,你可以部署一个 gpg-agent。它以后台守护进程方式运行,gpg-agent 可以安全地缓存你的 GPG 密码,无需手工干预,gpg 可以自动从 gpg-agent 获得你的 GPG 密码。如果你正在使用 Linux 桌面,你可以配置使用一些等同于 gpg-agent 的特定的桌面软件,例如,GNOME 桌面的 gnome-keyring-daemon。
你可以在基于 Debian 系统安装 gpg-agent:
$ sudoapt-get install gpg-agent
gpg-agent 在基于 Red Hat 的系统上是预装好的。
现在增加下面这些到你的 .bashrc 文件中。
envfile="$HOME/.gnupg/gpg-agent.env"
if[[-e "$envfile"]]&&kill-0 $(grep GPG_AGENT_INFO "$envfile"|cut-d:-f 2)2>/dev/null;then
eval"$(cat "$envfile")"
else
eval"$(gpg-agent --daemon --allow-preset-passphrase --write-env-file "$envfile")"
fi
export GPG_AGENT_INFO
重载 .bashrc,或简单的登出然后重新登录。
$ source ~/.bashrc
现在确认 GPGAGENTINFO 环境变量已经设置妥当。
$ echo $GPG_AGENT_INFO
/tmp/gpg-0SKJw8/S.gpg-agent:942:1
并且,当你输入 gpg-agent 命令时,你应该看到下面的信息。
$ gpg-agent
gpg-agent: gpg-agent running and available
一旦 gpg-agent 启动运行,它将会在第一次提示你输入密码时缓存你的 GPG 密码。随后你多次运行 Mutt ,都不会被提示要 GPG 密码(gpg-agent 一直开着,缓存就不会过期)。
结论在这个指导里,我提供一个使用 GnuPG 加密如 SMTP/IMAP 密码这样的 Mutt 敏感配置的方法。注意,如果你想在 Mutt 上使用 GnuPG 来加密或签名你的邮件,你可以参考官方指南关于 GPG 与 Mutt 结合的部分。
如果你知道任何使用 Mutt 的安全技巧,欢迎分享它。