当我签署标签时,如何让git auto输入我的密码。有没有像 - 密码“我的长密码”,我确实尝试使用ssh-keygen,但它没有帮助。
存储库位于本地,一切都在本地完成。
答案 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”这样我每次签署标签时都不必输入我的长密码。