![让 GPG 代理永久存储密码](https://linux22.com/image/92352/%E8%AE%A9%20GPG%20%E4%BB%A3%E7%90%86%E6%B0%B8%E4%B9%85%E5%AD%98%E5%82%A8%E5%AF%86%E7%A0%81.png)
我最近在我的 Mac 上安装了 GPG:
brew install gpg;
brew install gpg-agent;
并生成带有密码的密钥对。
我添加use-agent
到我的~/.gnupg/gpg.conf
和allow-preset-passphrase
~/.gnupg/gpg-agent.conf
我使用以下方法成功解密了文件:
gpg --use-agent --output example.txt --decrypt example.gpg
这提示我输入我的私钥密码。问题是,在解密后续文件时,gpg-agent
再次提示我输入此密码。
目前,我的密码是一个非常长的字符串,几乎不可能每次都输入。我希望gpg
表现得像ssh-agent
密码短语被安全存储并永远记住(即使在会话之间)。
我知道,如果我的笔记本电脑被包含在内,这可能会降低安全性,但这种不便可能会阻止我gpg
一起使用它们。
我不确定是否:
default-cache-ttl 31536000
max-cache-ttl 31536000
是我正在寻找在重新启动之间存储的选项,遗憾的是man
没有gpg-agent
.
我怎样才能永远gpg
记住gpg-agent
我的私钥密码?
答案1
您可能没有$GPG_AGENT_INFO
设置环境变量。
作为临时措施,您可以执行的操作是运行gpg-agent bash
(或您选择的 shell)并重试解密。
从长远来看,这可能只需先注销然后重新登录系统,然后$GPG_AGENT_INFO
再次检查回显即可解决。如果是的话,您很有可能不再需要每次都重新输入密码。
大多数 Linux 发行版都有相应的钩子,我希望 OSX 能够像用户友好的那样,满足要求,当然是gpg/gpg-agent
在开始会话之前可用(安装)。
答案2
您应该像这样启动代理。
eval $(gpg-agent --daemon --write-env-file "${HOME}/.gnupg/.gpg-agent-info)"
然后在您的.bashrc
文件中添加以下行:
if [ -f "${HOME}/.gnupg/.gpg-agent-info" ]; then
. "${HOME}/.gnupg/.gpg-agent-info"
export GPG_AGENT_INFO
fi