GitLab远程:HTTP基本认证被拒绝和致命的身份验证问题

570

此帖子不同,我使用的是 macOS。

我已在 GitLab 中配置了密码。 在 GitLab 项目创建后,我还创建了 SSL 密钥。

当我为新项目使用现有文件夹并按照以下步骤操作时,系统会提示我输入 GitLab 用户名和密码。

现有文件夹

cd existing_folder
git init
git remote add origin https://gitlab.com/sobopla/Geronimod.git
git add .
git commit -m "Initial commit"
git push -u origin master

输入密码后,我收到以下错误信息。

远程:HTTP基本认证被拒绝 致命错误:访问'https://gitlab.com/myname/myproject'时身份验证失败


以下的答案对我没有用...如果还有人在mac上遇到这个问题...这个链接可能会有所帮助... https://dev59.com/U2Mm5IYBdhLWcg3wX-LT - Pallamolla Sai
如果您的GitLab帐户设置了密码过期日期,但您正在使用另一种身份验证方法(例如LDAP),则也可能会出现此错误。然后,GitLab会在甚至不检查您的凭据是否与LDAP服务器匹配的情况下抛出403错误。 - Andy
惩罚相关问题:macos - 如何更新Git的密码?- Stack Overflow - user202729
一个解决方法是使用SSH进行身份验证,而不是HTTP。在上面的步骤中,这意味着用git remote add origin git@gitlab.com:sobopla/Geronimod.git替换第三行。如果您正确设置了SSH密钥,则应该可以。 - dinosaur
我很惊讶没有人建议你应该做的第一件事。 仔细检查你的用户名和密码! - Janez Kuhar
52个回答

968

每次我被强制更改Windows密码时,以上的答案都没有帮到我。

尝试以下解决方案,这对我有用:

  1. 转到Windows凭据管理器。在EN-US Windows中,可以按下Windows键并输入“credential”来完成此操作。在其他本地化的Windows变体中,您需要使用本地化术语(请参见以下评论中的一些示例)。

    或者,您也可以在运行对话框(WIN+R)中使用快捷方式 control /name Microsoft.CredentialManager

  2. 编辑Windows凭据下的git条目,用新密码替换旧密码。


13
谢谢,这对我也管用了,并解决了问题。 如果您在设备上有不同的Github账户,则需要使用此解决方案。 - Dany Wehbe
8
虽然我使用了多个GitLab账号,但这种方法对我也有效。我将所有的GitLab账号都更新为与我的凭证管理器中相同的密码,问题就解决了。谢谢@mpro。 - Rajan Chauhan
8
“Credential Manager”翻译成中文为“凭据管理器”,而非“Диспетчер Учетных Данных”。 - Dyno Cris
9
在德语中,它是“Anmeldeinformationsverwaltung”,然后是“Windows-Anmeldeinformationen”。 - nachtigall
5
在IT领域中,它的翻译是“身份信息管理器”。 - Maarti
显示剩余13条评论

487

以下是我的做法:

不要使用GitLab密码,而是创建一个访问令牌并将其用于代替密码:

  1. 在GitLab中,右上角进入个人资料→ 设置→ 访问令牌第一步

  2. 创建新的个人访问令牌(勾选API选项)第二步

  3. git clone ...

  4. 当您被要求输入密码时,复制并粘贴访问令牌,而不是您的GitLab密码

    第三步


4
在Windows系统中,可以通过更改Windows凭据管理器中的密码来为令牌更新密码。 - Original BBQ Sauce
5
这应该是被接受的答案。根据安全配置,某些项目需要这样做。Gitlab密码将不起作用,只需创建并使用您的令牌(将令牌保存在安全的地方以备将来使用)。 - eduardosufan
17
LOL,我没有找到任何地方告诉我在密码字段中应该使用访问令牌... - Alexandre Prazeres
成功了!我为这个问题已经苦恼了几个小时了。我不记得在任何地方看到过使用个人访问令牌作为密码的方法 -_- - WTFranklin
3
对我来说不起作用,不知道为什么,我已经在这个问题上苦思冥想太久了。 - Villager
显示剩余16条评论

338

您可以尝试以下命令:

git config --system --unset credential.helper

然后,为Git远程服务器输入一个新密码。


38
请注意,在Windows上您需要以管理员身份运行它,否则您将会遇到权限错误。 - Eternal21
15
取决于您放置凭据的位置。如果上一个命令不起作用,也可以尝试使用全局标志: git config --global--unset credential.helper - Luca Natali
1
这是最相关的答案,因为它解决了问题,而不会走向一些“在Windows上”的离题。另外,作为一个附注,如果您的用户没有访问/etc的权限,您可能需要以sudo身份运行此命令。 - Ghostrydr
9
如果取消凭据帮助程序,每次连接到GIT存储库时都需要提供用户名和密码。为了解决这个问题,您可以使用以下命令重新设置帮助程序:git config --global credential.helper store - Tomasz Czechowski
1
如果您没有管理员访问权限,请省略--system或--global标志,并仅为当前的git存储库设置凭据助手。 - Juan Rojas
显示剩余4条评论

137

我遇到了同样的错误,解决方法如下:

  1. 在命令提示符中应用以下命令 (以管理员身份运行)

    git config --system --unset credential.helper

  2. 然后从C:\Program Files\Git\mingw64/etc/位置删除gitconfig文件(注意:此路径在MAC上可能不同,例如“/Users/username”)

  3. 之后使用git pullgit push等git命令,它会要求输入用户名和密码。输入有效的用户名和密码,git命令将正常工作。

希望这能帮到你...


16
如果你遇到了这个错误,你可以以管理员身份运行命令提示符,错误就会消失。 - Eternal21
FYI:只是重置配置(你的第一个命令)就可以了。然后我进行了git push,嘭!我想这是因为我的公司要求每月更改密码,所以内部的git lab出了问题。 - yardpenalty.com
4
也可以尝试使用 --global 参数,这样输入以下命令:git config --global --unset credential.helper。该命令将取消设置凭据协助程序并使其全局生效。 - Mike
删除 gitconfig 文件时出现错误:“错误设置证书验证位置:cafile”。 - Alexbogs

90

谢谢。虽然对我来说必须将其替换为SSL repo URL,但你的答案帮了我很多。我已经点赞了它。 - Muzzamil
谢谢。在使用BitBucket或Github时,我没有遇到这样的问题。但是在GitLab中,我必须创建个人访问令牌,然后在远程源中使用它 git remote set-url origin https://usernameHere:personalAccessTokenHere@gitlab.com/usernameHere/projectNameHere - Woppi
这对我来说总是有效的。 - undefined

52

前往Windows凭据管理器(按下Windows键并输入“凭据”)以编辑Windows凭据下的git条目。将旧密码替换为新密码。

Windows凭据管理器


OP正在使用macOS,而不是Windows。 - Matthieu Brucher
1
这对 OP 没有帮助,但在我的 Windows 开发环境中却非常有效。 - Tony
虽然这是用西班牙语写的,但它帮助我在Windows中添加了Git凭据。我输入了control /name Microsoft.CredentialManager命令,选择了Windows凭据(而不是Internet凭据),然后添加了Windows凭据(我想知道为什么它们之前不在那里)。添加了类似于git.company.name的名称和密码。当我向Git存储库推送一个新分支时,Windows要求输入名称和新密码。 - undefined

47

只需在域名之前添加您的用户名:

https://**username**@gitlab.com/user/projectgit

然后助理会要求您输入密码


2
https://<username>:<password>@gitlab.com/user/project.git - Saleh Rahimzadeh

37

我也遇到了相同的问题。问题的原因是身份验证错误。 要解决此问题,请转到 控制面板 -> 凭据管理器 -> 通用凭据 在这里找到您的GitLab凭据并进行编辑。 确保您的ID密码是否正确

输入图像描述


这个方法很管用,在我的情况下是因为公司每隔几个月就强制我们更改域密码。这次更改没有更新凭据管理器中的凭据。当我更新了密码后,它就可以正常工作了。 - k4yaman

32

如果您正在使用git> 2.11,并且使用Kerberos与Gitlab交互,则需要在本地git中设置此配置,以避免出现remote: HTTP Basic: Access denied 错误。

$ git config --global http.emptyAuth true

来源


1
我没有使用Kerberos,但感谢您的回复。 - jeancode
不需要使用Kerberos。谢谢!https://git-scm.com/docs/git-config - contributorpw
今天早上在Windows上对Git进行了干净的安装。这个答案解决了我的访问被拒绝错误。 - James
天啊 - 我浏览了所有其他建议,最终终于终于这个方案奏效了。确实是使用了Kerberos! - Bon Crowder at MathFour

25

每当我更改登录密码时,我都会遇到同样的问题。

以下是需要运行的命令来解决此问题:

git config --global credential.helper wincred
运行以上命令后,它再次要求我输入我的更新用户名密码

运行以上命令后,它再次要求我输入我的更新用户名密码


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