当我使用 git clone 克隆一个仓库时https://[电子邮件保护]/目录 或者当我用 git push origin master 推送到它时
Git 要求我输入密码,我如何才能自动提供密码,例如 ssh 密钥?这样它就不再要求我输入密码了?
我需要这个有两个原因:
1)自动化,例如Hudson
2)我太懒了,每次都自己提供
第二个问题(与第一个问题相关)
为什么他们有时会要求输入两次密码?
答案1
没有类似 SSH 代理的 http,因此您必须以明文形式提供密码。您可以将凭据保存到~/.netrc
:
touch ~/.netrc
chmod 600 ~/.netrc
cat > ~/.netrc <<EOF
machine domain.com
login USERNAME
password SUPERSECRET
EOF
请注意,密码以明文形式保存。它不如使用加密的 SSH 密钥和 ssh 代理安全,但可以完成工作。在大多数系统上,您的安全级别基本上与默认 Subversion 相同。
请注意,较新版本的 Git(> 1.7.0)在缓存输入的凭据方面做得更好,因此如果您不使用,则只需在那里输入一次密码.netrc
。