带gpg-agent的gpg从不要求输入密码


17

在不运行gpg-agent的情况下,我可以输入密码来签名:

$ echo 123 | gpg -s

You need a passphrase to unlock the secret key for
user: "Mr. Ops <ops@bxxx.com>"
2048-bit RSA key, ID 20F31903, created 2014-03-13

gpg: gpg-agent is not available in this session
Enter passphrase:

工作良好。但是我不想一直输入密码,所以我运行gpg-agent:

$  eval $(gpg-agent --daemon)

现在,我希望至少被提示输入一次密码,但是我从来没有被提示过,使用gpg的所有操作都会失败。

$ echo 123 | gpg -s

You need a passphrase to unlock the secret key for
user: "Mr. Ops <ops@bxxxx.com>"
2048-bit RSA key, ID 20F31903, created 2014-03-13

gpg: cancelled by user
gpg: no default secret key: bad passphrase
gpg: signing failed: bad passphrase

如何将密码存储在代理中?将其保存在那里后,如何在登录会话中将其保存在那里?(理想情况下,我再也不想再收到提示了。)这是在具有标准apt-get gpg软件包的Ubuntu 12.04.4上,以防万一。

Answers:


18

gpg-agent不知道要提示哪个TTY时,就会发生这种情况,这是因为您要重定向标准输入。

你可以把export GPG_TTY=$(tty)~/.bashrc设置的TTY每个登录shell。

上的文档gpg-agent有更多详细信息。


7

有点晚了,但是这一次,当我远程登录到我的电脑(Linux-Centos)并尝试解密PGP文件时,我遇到了这个问题。我尝试了戴夫的建议,没有运气,谷歌搜索我发现了这个

gpg:已被用户取消

这部分解决了我的问题:

最后,在允许其他人对tty进行读写操作之后,似乎可以解决此问题

[root @ host〜]#chmod o + rw $(tty)

希望这可以帮助其他人。

BR。


这将是有效的..只需对用户执行su之前先执行chmod tty部分
user169015'1

这是不安全的-您应确保tty由正确的用户拥有,或者使用具有所需用户权限且具有组权限的组:)
Legooolas
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.