当我签署标签时,如何让git自动输入我的密码?是否有一个选项像--passphrase "我的长密码",我尝试使用ssh-keygen但没有帮助。
存储库位于本地,一切都在本地完成。
use-agent
如果已经安装了gpg-agent,您的系统可能会自动调用它。如果环境变量GPG_AGENT_INFO
已定义,则可以开始使用。否则,请启动代理:
eval $(gpg-agent --daemon --sh)
这是针对bash的操作;如果使用其他shell,请适当调整。
现在,当您需要解锁GPG密钥时,应该会弹出一个窗口(或其他方法),让您输入密码。一旦输入,您就不需要再次输入它,因为所有其他请求都将发送到已解锁您的密钥的代理。
您被要求输入GPG密钥链密码,而不是SSH密码,请输入该密码。
如果有人感兴趣的话,我找到了解决我的问题的方法。
1.创建新的 /usr/bin/gpg-with-passphrase 文件,并使用以下内容填充:
/usr/bin/gpg --passphrase "My Really Long passphrase" --batch --no-tty "$@"
2.使新的 /usr/bin/gpg-with-passphrase 可执行
chmod 755 /usr/bin/gpg-with-passphrase
3. 将此选项添加到 git 配置中
git config gpg.program "/usr/bin/gpg-with-passphrase"
使用 "--global" 来设置全局
这样我就不必每次签署标签时都输入我的长密码。
gpg
确实允许你自己给自己惹麻烦。不过他们在 manpage 中添加了这个注释:"显然,在多用户系统上,这是非常有问题的安全性。如果可以避免,请不要使用此选项。" - Paul Price$@
,请记得用双引号括起来:"$@"
。 - kevinarpeecho "test" | gpg-with-passphrase --clearsig
仍然需要输入密码,Git 也是如此 :( - Vitaly Zdanevich
gpg: gpg-agent is not available in this session
的消息吗?我该如何强制Git使用代理?有什么想法吗? - Asbjørn Ulsberg~/.gnupg/gpg.conf
文件中已设置了use-agent
和GPG_AGENT_INFO
。如果遇到问题,请尝试访问 http://serverfault.com/questions/481103/gpg-agent-says-agent-exists-but-gpg-says-agent-doesnt-exist。 - Paul PriceGPG_AGENT_INFO
实际上没有设置任何值。我也不太理解它应该设置为什么。 :-/ - Asbjørn Ulsberg