GIT签署了标签和密码

时间:2012-06-25 18:43:46

标签: linux git gnupg git-sign

当我签署标签时,如何让git auto输入我的密码。有没有像 - 密码“我的长密码”,我确实尝试使用ssh-keygen,但它没有帮助。

存储库位于本地,一切都在本地完成。

3 个答案:

答案 0 :(得分:4)

正如mipadi所说,这是您要求的GPG密钥密码。您确实不希望在您的命令行中按照您的建议,因为这可能使其他用户可见,从而危及您的安全。知道了这一点,gpg和git的创造者不会让你自己在脚下射击。当然,这会引发如何以自动方式执行此操作的问题,这样您就不会自己输入密码一百次。

gpg-agent对此非常有用。您可能需要与gpg分开安装(例如,在Ubuntu上,您需要包gnupg-agent)。然后确保~/.gnupg/gpg.conf包含该行(取消注释):

use-agent

安装gpg-agent后,您的系统可能会自动为您调用它。如果定义了环境变量GPG_AGENT_INFO,那么你很高兴。否则,启动代理:

eval $(gpg-agent --daemon --sh)

(这是针对bash;根据其他shell的需要进行调整。)

现在,当您需要解锁GPG密钥时,您应该有一个弹出窗口(或其他方法)供您输入密码。输入后,您不需要再次输入,因为所有其他请求将转到已解锁密钥的代理。

答案 1 :(得分:2)

系统会要求您输入GPG钥匙串密码,而不是SSH密码。输入而不是。

答案 2 :(得分:1)

如果有人有兴趣,我确实找到了解决问题的方法。

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 config

的选项
git config gpg.program "/usr/bin/gpg-with-passphrase"

对全局

使用“--global”

这样我每次签署标签时都不必输入我的长密码。