我在构建软件包时使用它gpg-agent
来记住并提供我的GnuPG
密码Debian/Ubuntu
。但我仍然不明白它是如何gpg-agent
工作的。我调用gpg-agent
如下:
eval $(gpg-agent --daemon)
有时它可以工作。但让我烦恼的是,有时它不起作用。也就是说,有时构建过程会要求我输入GnuPG
一次密码,有时不输入,有时多次输入。这一切都发生在一个 bash 会话中,在我gpg-agent
像以前一样调用之后。这次不要求输入密码并不能保证下次不会要求我输入密码。我仍然不明白为什么它gpg
决定提示我输入密码,为什么不提示我输入密码。
你也遇到这种情况了吗?
谢谢
答案1
找到如何正确gpg-agent
使用
http://tr.opensuse.org/SDB:Using_gpg-agent
之后,我的gpg-agent
守护进程现在可以正确缓存我的GnuPG
密码了。我的设置没有问题,只是我不知道如何测试我的GnuPG
密码是否正确缓存。
现在,我这样做:
echo "test" | gpg -ase -r 0xMYKEYID | gpg
来自网站:“将 0xMYKEYID 替换为您的 GnuPG 密钥 ID。运行此命令时,代理应打开两次图形密码对话框:第一次用于签名或加密(gpg -ase)(gpg -ase),然后用于解密或签名检查(| gpg)。从现在开始,每次使用 GnuPG(无论是从命令行还是嵌入在图形程序中,如 KMail)时,gpg-agent 的密码都会自动传递(直到超时或图形界面关闭)。”
为了避免缓存过期,我现在设置了极长的超时期限:
$ cat ~/.gnupg/gpg-agent.conf
max-cache-ttl 60480000
default-cache-ttl 60480000