4

当我签署标签时,如何让 git 自动输入我的密码。有没有像 -- passphrase "my long passphrase" 这样的选项,我确实尝试过使用 ssh-keygen 但它没有帮助。

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

4

3 回答 3

4

正如 mipadi 所说,正在请求的是您的 GPG 密钥密码。正如您所建议的那样,您真的不希望在命令行上使用它,因为这可能会使其对其他用户可见,从而损害您的安全性。知道了这一点,gpg 和 git 的创建者不会让你这样自取其辱。当然,这会引发一个问题,即如何以自动方式执行此操作,这样您就不会因为输入密码一百次而丧命。

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

use-agent

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

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

(这适用于 bash;根据其他 shell 的需要进行调整。)

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

于 2012-06-25T20:06:24.197 回答
2

系统要求您提供 GPG 钥匙串密码,而不是 SSH 密码。输入比代替。

于 2012-06-25T19:35:40.767 回答
0

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

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”表示全局

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

于 2012-06-30T01:44:58.077 回答