GIT 签名标签和密码短语


如何在

签名标签时让 git 自动输入我的密码。 有没有这样的选项——密码短语"我的长密码",我确实尝试使用 ssh-keygen,但它没有帮助。

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

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

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

use-agent

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

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

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

现在,当您需要解锁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"表示全局

这样,我就不必在每次签署标签时都输入我的长密码短语。

最新更新