Git一直提示我输入密码

825

我已经使用Git有一段时间了,但是不停地要求输入密码让我感到非常烦恼。

我使用的是Mac OS X和GitHub,按照GitHub的 Set Up Git页面 的指示设置了Git和我的SSH密钥。

我还像GitHub的SSH key passphrases页面上提到的那样,将github SSH 密钥添加到了我的Mac OS X密钥链中。我的公钥已在Git中注册。

尽管如此,每次我尝试Git pull时,都需要输入我的用户名和密码。除了SSH密钥之外,还需要设置其他内容吗?


1
有点儿傻的问题,但是你验证过使用ssh连接到git机器时SSH密钥是否有效吗? - Kurt Stutsman
4
你是说类似于 ssh -T git@github.com 这样的东西吗?没错,这个方案完全可行(虽然有点慢)。 - Catherine
2
请参阅Git push需要用户名和密码 - user456814
对于https url,你可以使用(git1.8.3+)一个git凭证助手“netrc”。在这里查看完整示例 - VonC
1
我是一名Windows用户,即使将我的公钥添加到服务器的authorized_keys文件中,我仍然遇到了密码请求问题。实际上问题在于我没有将我的公/私密钥保存在c:\program files\git文件夹下的.ssh文件夹中。如果有人面临此类问题,请将您的密钥复制到此文件夹并尝试推送/拉取操作。 - Raja Amer Khan
显示剩余6条评论
32个回答

0

我遇到了这个问题。一个仓库要求我每次输入凭据。我的其他所有仓库都没有要求我的凭据。它们甚至都使用相同的帐户凭据在 HTTPS 下跟踪 GitLab,所以很奇怪为什么它们都正常工作,只有一个有问题。

比较 .git/config 文件,我发现 URL 中有两个关键差异导致了问题:

需要凭据:

https://gitlab.com/myaccount/myproject

不要求凭据:

https://myaccount@gitlab.com/myaccount/myproject.git 

所以在我的情况下,添加“myaccount @”和“.git”解决了这个问题。


0

Microsoft Stack 解决方案 (Windows 和 Azure DevOps)

首先打开 .git/config 文件,确保地址看起来像这样:

protocol://something@url

例如,Azure DevOps 的 .git/config:

[remote "origin"]
    url = https://mystore@dev.azure.com/mystore/myproject/
    fetch = +refs/heads/*:refs/remotes/origin/*

如果问题仍然存在,请打开Windows凭据管理器,点击名为“Windows凭据”的保险箱,并删除所有与git相关的凭据。
现在下次登录git时,它就不会再消失了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接