在每次git推送时如何避免指定用户名和密码?
我git push
我的工作git push
到远程Git仓库。
每push
都会提示我输入username
和password
。 我想避免它的每一个推动,但如何配置,以避免它?
1.生成一个SSH密钥
Linux的/苹果机
打开终端来创建ssh密钥:
cd ~ #Your home directory
ssh-keygen -t rsa #Press enter for all values
对于Windows
(只有在提交程序能够使用证书/私人和公共ssh密钥的情况下才有效)
以上是关于上述步骤的putty gen的演练
2.将SSH密钥与远程存储库相关联
这一步骤会有所不同,具体取决于您的远程设置。
如果它是GitHub存储库并且您拥有管理权限,请转到设置并单击“添加SSH密钥”。 将~/.ssh/id_rsa.pub
的内容~/.ssh/id_rsa.pub
到标有'Key'的字段中。
如果您的存储库由其他人管理,请给管理员您的id_rsa.pub
。
如果您的远程存储库由您管理,则可以使用此命令,例如:
scp ~/.ssh/id_rsa.pub YOUR_USER@YOUR_IP:~/.ssh/authorized_keys/id_rsa.pub
3.将您的远程URL设置为支持SSH的表单1
如果您已经完成了上述步骤并仍然收到密码提示,请确保您的repo网址位于表单中
git+ssh://git@github.com/username/reponame.git
而不是
https://github.com/username/reponame.git
要查看您的回购网址,请运行:
git remote show origin
您可以更改网址:
git remote set-url origin git+ssh://git@github.com/username/reponame.git
[1]本节包含了Eric P的答案
使用Git存储库永久验证身份,
运行以下命令启用凭证缓存。
$ git config credential.helper store
$ git push https://github.com/repo.git
Username for 'https://github.com': <USERNAME>
Password for 'https://USERNAME@github.com': <PASSWORD>
使用时还应该指定缓存过期 ,
git config --global credential.helper 'cache --timeout 7200'
启用凭证缓存后,它将被缓存7200秒(2小时) 。
注意:证书帮助程序在本地磁盘上存储未加密的密码。
如果您已经设置了SSH密钥并仍然收到密码提示,请确保您的repo网址位于表单中
git+ssh://git@github.com/username/reponame.git
而不是
https://github.com/username/reponame.git
要查看您的回购网址,请运行:
git remote show origin
您可以使用git remote set-url
来更改URL,如下所示:
git remote set-url origin git+ssh://git@github.com/username/reponame.git
链接地址: http://www.djcxy.com/p/27057.html
上一篇: How do I avoid the specification of the username and password at every git push?