在每次git推送时如何避免指定用户名和密码?

git push我的工作git push到远程Git仓库。

push都会提示我输入usernamepassword 。 我想避免它的每一个推动,但如何配置,以避免它?


1.生成一个SSH密钥

Linux的/苹果机

打开终端来创建ssh密钥:

cd ~                 #Your home directory
ssh-keygen -t rsa    #Press enter for all values

对于Windows

(只有在提交程序能够使用证书/私人和公共ssh密钥的情况下才有效)

  • 使用Putty Gen生成密钥
  • 将密钥导出为开放的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?

    下一篇: What is the result of `git push origin`?