当我用git clone https://[email protected]/directory克隆一个repo,或者当我用git push origin master
Git要我input密码,我怎么能自动提供密码,比如ssh密钥? 所以它不要求我的密码了?
我需要这个有两个原因:
1)自动化,哈德森例如
2)我懒得自己每次都提供它
第二个问题(与第一个问题有关)
为什么有时候会要求密码两次?
没有什么像SSH代理的http,所以你必须以明文forms提供密码。 您可以将凭据保存到~/.netrc :
touch ~/.netrc chmod 600 ~/.netrc cat > ~/.netrc <<EOF machine domain.com login USERNAME password SUPERSECRET EOF
请注意,密码以明文保存在那里。 它比使用encryption的SSH密钥和ssh代理更安全,但是完成了工作。 在大多数系统上,您基本上与默认的Subversion具有相同的安全级别。
请注意,较新版本的Git(> 1.7.0)可以更好地cachinginput的凭据,所以如果不使用.netrc只需要在那里input密码即可。