HTTP基本认证:访问被拒绝 致命错误:身份验证失败

60
我使用 GitLab Community Edition 9.1.3 2e4e522 在 Windows 10 Pro x64 上,同时使用 Git 客户端。
错误。
Cloning into 'project_name'...
remote: HTTP Basic: Access denied
fatal: Authentication failed for 'http://my_user_name@example.com/my_user_name/project_name.git/'

如何修复它?


我在macOS High Sierra(10.13.5)中遇到了这个问题。如何解决? - IKKA
在macOS上,您可以打开钥匙串,然后删除凭据。https://support.apple.com/en-vn/guide/keychain-access/what-is-keychain-access-kyca1083/mac - Raphaël Colantonio
我从钥匙串中删除了凭据,但仍然出现相同的错误。 - IKKA
答案已经在这里给出了 https://dev59.com/e1YN5IYBdhLWcg3wK1fO - Devashish
17个回答

95

打开CMD(以管理员身份运行) 输入命令:

git config --system --unset credential.helper

然后输入Git远程服务器的新密码。


3
移除或禁用Windows中的Git凭证管理器并不是解决这个问题的真正方法。人们之所以拥有并使用它,是因为它是工作流程中必不可少的一部分;也许是因为他们使用GitHub。这个代码库需要能够与Git凭证管理器无缝协作,使其“只需工作即可”。 - Sébastien
8
这是什么作用? - Mohammad Kermani
10
无法运行:出现错误:“无法锁定配置文件/etc/gitconfig:权限被拒绝”。 - Schroeder
6
这取决于您放置凭据的位置。如果之前的命令不起作用,请尝试使用全局标志而不是系统:git config --global--unset credential.helper - Luca Natali
1
@sabertabatabaeeyazdi 你需要以管理员身份运行cmd。尝试在此之后重新运行该命令。 - prohit
显示剩余4条评论

28

在我的情况中,我使用的是Git Credential Manager for Windows(它是默认安装的,我没有手动安装)

Credentials Manager保存了我的旧密码,但我最近已经更改了它。

如果您处于相同的条件下,解决此问题的方法是: 进入控制面板->凭据管理器,并删除Git帐户。 然后它会再次要求您输入凭据。


我的GitLab账户已经与Github连接。但是我遇到了这个问题。 - Vinit Bhavsar
我正在使用 GitHub 密码来进行操作。这是我对该分支的第一次提交。 - Vinit Bhavsar
@KlevisGjN 我在 Windows 10 Pro 中遇到了这个问题。 - Vinit Bhavsar

14

对我的情况而言,我最初尝试使用

git config --system --unset credential.helper

但是我收到了错误提示

error: could not lock config file C:/Program Files/Git/etc/gitconfig: Permission denied

然后我又尝试了

git config --global --unset credential.helper

没有错误提示,但是在Git拉取时仍然遇到了访问被拒绝的错误。

接着我去了“控制面板” -> “凭据管理器” > “Windows 凭据”并删除了Git账户。

之后再次尝试Git拉取时,它会请求输入凭据,并且一个新的Git账户会添加到凭据管理器中。


控制面板 -> 凭据管理器 > Windows 凭据,对于 gitlab 帐户下的 2 个选项进行编辑,这对我很有效。 - Farhan Hai Khan

8
我遇到了同样的错误,我的建议是:
  1. 尝试在GitLab中创建另一个用户
  2. 重新检查用户名和密码(虽然这听起来很明显)
  3. 验证Windows凭据(开始 ->“cred”)
  4. 复制并粘贴与从GitLab获取的相同URL,结构应为:

http://{srvName}/{userInGitLab}/{Repository.git} 结尾不要加'/'

  1. 重新检查GitLab中的授权
  2. 注意区分大小写
希望以上方法之一可以解决问题。

1
太好了!我第一次输入了错误的密码,只需在Windows凭据中更改即可。从git-tortoise没有重新输入的方式。 - HATCHA

6
如果提示输入用户名和密码,请添加 GitLab 用户名和密码以进行克隆。
如果出现弹出对话框要求凭据,请按以下步骤操作。
1. 转到“控制面板”。 2. 用户帐户。 3. 管理凭据。 4. Windows 凭据。 5. git:https://username@gitlab.com。 6. 单击向下箭头。 7. 单击“删除”。
希望这能帮到您!

5

这可能是由于密码更改导致的,因为Git凭据管理器缓存了密码,所以如果是这种情况: 1. 在Windows中打开凭据管理器 2. 搜索您的GIT凭据并将其重置为新密码。


4

在Ubuntu 20.04中,

VSCode终端无法进行拉取/推送操作

返回以下错误信息:

remote: HTTP Basic: Access denied
fatal: Authentication failed for

只需在文件夹位置打开普通终端 git pull/push 就可以正常工作了


这是一个解决办法,而非解决方案。但它能够运作! - Nitai Bezerra
它对我有效,谢谢。 - DeathInWhite

4

前往凭证管理器 => git 凭证 检查您的 git 凭证并检查密码。

这对我起作用了。


4
  1. 生成一个永不过期的访问令牌,并选择所有可用选项。
  2. 删除现有的SSH密钥。
  3. 使用https克隆存储库,而非ssh。
  4. 使用用户名,但使用生成的访问令牌代替密码。

enter image description here

或者在现有存储库中使用此命令将远程设置为http,并使用此命令git remote set-url origin https://gitlab.com/[username]/[repo-name].git


3

在深入解决方案之前,让我们先看看为什么会发生这种情况。

在您的计算机进行任何与 git 相关的交易之前,git 会检查您的身份验证方式,可以使用以下方法进行身份验证:

  1. 在您的计算机上存在并与 git-repo 共享的 SSH 密钥标记(最常用的方法) 或者
  2. 使用您的用户名/密码(大多数人使用)

为什么会发生这种情况

简单地说,这是因为存储在您的计算机中的凭据不是真实的,即您在计算机中存储的密码可能已经与 git 中的不同了,因此

解决方案

前往控制面板,搜索凭据管理器,查找您使用的 git url 并更改凭据即可。

这样就可以解决大多数 Windows 跟踪的问题了。


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