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


266

我在Mac OS上与这篇文章不同:

我在GitLab中配置了密码。

我在GitLab上完成项目后创建了SSL密钥。

当我将现有文件夹用于新项目时,请按照以下步骤操作:

现有资料夹

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

系统提示我输入我的GitLab用户名和密码。输入密码后,我得到:

远程:HTTP基本:拒绝访问致命的:身份验证失败“ https://gitlab.com/myname/myproject


以下的答案都为me..If仍然面临人在MAC这个问题......这个链接可以帮助...没有工作 stackoverflow.com/questions/17659206/...
PALLAMOLLA SAI

Answers:


532

每当我被迫更改Windows密码时,都会发生这种情况,以上答案都对我没有帮助。

请尝试以下对我有用的解决方案:

  1. 转到Windows 凭据管理器。在EN-US Windows中,这是通过按Windows键并键入“ credential”来完成的。在其他本地化的Windows变体中,您需要使用本地化的术语(有关示例,请参见注释)。

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

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

3
谢谢,这对我也很有效,并解决了问题。如果您的设备上有不同的Github帐户,则需要此解决方案
Dany Wehbe

4
尽管我使用了多个gilab帐户,但它对我也起作用,所以我用我在凭据管理器中使用的相同密码更新了所有gitlab帐户,并解决了问题,谢谢@mpro
Rajan Chauhan

6
注意:在您的语言系统中输入。罗斯:“凭证管理员” =“ДиспетчерУчетныхДанных”
Dyno Cris,

2
好答案。在您的工作帐户中,尤其是这种情况,您必须不时更改密码。
geekidharsh

4
在德语中是“ Anmeldeinformationverwaltung”,然后是“ Windows-Anmeldeinformationen”。
nachtigall,

168
   git config --system --unset credential.helper

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


22
请注意,在Windows上,您需要以管理员身份运行它,否则会得到权限错误
Eternal21 '18

6
这取决于您将凭据放在何处。如果先前的命令不起作用,请尝试使用全局标志:git config --global--unset credential.helper
Vincent Lunat

这是与OP最相关的答案,因为它可以解决问题,并且不会在“ Windows上”切线上出现。另外,作为旁注,您可能需要运行此命令,sudo就像您的用户无权访问/etc
Ghostrydr '18

git config --system credential.helper管理器,再次使用credential.helper。
hatanooh

如果您未设置凭据助手,则每次连接到GIT存储库时都必须提供用户名和密码。要解决此问题,您可以使用以下命令再次设置帮助程序:git config --global credential.helper store
Tomasz Czechowski

85

我遇到了同样的错误,我通过以下方法解决了这个问题:

  1. 从cmd应用命令(以管理员身份运行)

    git config --system --unset credential.helper

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

  3. 之后,使用git命令(例如git pull或)git push,它要求我输入用户名和密码。应用有效的用户名和密码以及git命令运行。

希望这个能对您有所帮助...


11
如果收到该错误,则只需以管理员身份运行命令提示符,该错误就会消失。
Eternal21 '18

仅供参考:只需重置配置(您的第一个cmd)即可。然后,我进行了git push和blammo!我认为这是因为我的商店要求每月更改一次密码,因此内部git实验室无法解决。
yardpenalty.com

1
也可以通过--global来 尝试这种方式git config --global --unset credential.helper
Mike

57

对我来说,以下工作:

不要使用您的GitLab密码,而是创建一个访问令牌并使用它代替您的密码:

  1. 在GitLab中,转到“设置” >“ 访问令牌”
  2. 创建一个新令牌(检查api
  3. git克隆...
  4. 当要求您输入密码时,复制并粘贴访问令牌,而不是GitLab密码

4
也为我工作!
Christian Ray Leovido

42

对我唯一有效的方法是使用https://username:Password@gitlab.com/user/projectgit而不是https://gitlab.com/user/projectgit。参见https://gitlab.com/gitlab-com/support-forum/issues/1654


1
好答案对我来说很好,因为我的git是私有的,谢谢
Mohammad H.

谢谢。虽然对我来说必须用SSL repo url代替它,但是您的回答使我有所帮助。我已经投票了。
Muzzamil

谢谢。使用BitBucket或Github时我没有这样的问题。使用GitLab,我必须创建个人访问令牌,然后在远程来源中使用它git remote set-url origin https://usernameHere:personalAccessTokenHere@gitlab.com/usernameHere/projectNameHere
Woppi

37

转到Windows凭据管理器(按Windows键并键入“凭据”)以在Windows凭据下编辑git条目。用新密码替换旧密码。

Windows凭据管理器


OP在macOS而非Windows上。
Matthieu Brucher

这对OP没有帮助,但在我的Windows开发人员专用盒中却像是一种魅力。
托尼

27

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

在此处输入图片说明


之所以如此,是因为公司强迫我们每隔几个月更改一次域密码。此更改并未更新此凭据管理器中的凭据。一旦我更新了密码,它就开始工作了。
k4yaman

21

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

$ git config --global http.emptyAuth true

资源


有趣的情况,使用Kerberos。+1
VonC '18年

1
我没有使用Kerberos,但感谢您的答复。
jeancode

Kerberos没必要 谢谢!git-scm.com/docs/git-config
contributorpw'Aug

今天早上在Windows上全新安装Git之后。这个答案为我解决了访问被拒绝的错误。
詹姆斯

神圣的牛-我经历了所有其他建议,最后最终这个建议成功了。确实是在使用Kerberos!
在MathFour上的Bon Crowder

19

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

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

助手会询问您密码



12

管理员身份打开命令提示符,然后运行以下命令:

git config --system --unset credential.helper

无法锁定配置文件C:\ Program Files \ Git \ mingw64 / etc / gitconfig:权限被拒绝

1
您不使用配置文件,只需以管理员身份打开命令提示符并运行命令。希望这有助于
MD。Shafayatul Haque

12

如果您更改git服务帐户(GitHub或GitLab,Bitbacket等)的登录名或密码,就会发生这种情况。您还需要在Windows Credentials Manager中进行更改。

因此,在Windows搜索菜单中输入“ 凭据管理器 ”(rus。“ДиспетчерУчетныхДанных”),然后转到您的git服务帐户并更改数据。

在此处输入图片说明


尽管我没有更改用户名或密码(这是一个AD凭据),但这是由于重建Gitlab服务器而发生的,并且上述解决方案已修复了该错误。
迈克尔·哈夫纳

11

注意:请勿混用GitLab SSL设置GitLab SSH密钥

如果您在GitLab配置文件中配置的是SSH公钥,则您的HTTPS URL将不会使用它。

关于您的HTTPS凭据,请仔细检查:

  • 如果禁用了双重身份验证,或者
  • 如果您的用户名或密码中包含特殊字符,或者
  • 如果您有Git凭证助手:git config credential.helper

1
-我的用户名中有空格,因为我通过Github对Gitlab进行了身份验证-禁用了两因素验证-您的意思是“如果我有Git凭据助手?
jeancode

@jeancode我的意思是:键入时会看到什么git config credential.helper:可能已缓存了错误的凭据。
VonC

@jeancode对于空间,您是否对其进行了编码?(en.wikipedia.org/wiki/Percent-encoding#Character_data:20%)
VonC

我没有对名称中的空格做任何事情,该空格来自我在GitHub中的名称,GitLab在通过Github进行身份验证登录时获取了该名称。
jeancode

1
由于在启用两因素身份验证时尝试使用部署密钥,因此出现错误。显然,只有启用了两个因素,您才能使用个人访问令牌。
约书亚·戴克

9

有两种方法可以解决此问题:

  1. 我将用户名添加到了远程URL(https:// username @ gitRepoURL)的前面

    • 并非总是最好的解决方案;在我工作的地方,即使我们正在缓慢地使用GIT,但我们的应用程序都在网络驱动器上,因此,如果我这样做,即使其他人正在使用某个功能,也只能推送更改。
  2. 我无法git config --system --unset credential.helper从GIT Bash 运行,所以我不得不打开一个Admin Command Prompt并在其中运行(假定您安装了GIT,使其可以从GIT Bash和Command Prompt都运行)。从Bash,我收到“无法锁定配置文件”错误。


有关更多信息,请参见: git config -l。也可以尝试使用– --global代替--system
Mike

9

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

下面是我需要运行以修复此问题的命令:-

git config --global credential.helper wincred

运行上述命令后,它再次询问我更新后的用户名密码


5

就我而言,我重新安装了最新版本的git(当前为2.16.2)。我不知道这是否是我的git的旧版本已过时,但是我在github页面上读到,如果您发现https克隆错误,应该这样做。我发现这是一个https克隆错误,因为该错误集中在HTTP BasicGitLab上HTTPS。在这个思考过程中我可能是错的,但是该解决方案对我而言很有帮助,我希望这对以后的任何人都有帮助!


4

C:\Users\<<USER>> AND DELETE THE .gitconfig file然后转到尝试连接到上游的命令,如git clone, git pull or git push。系统将提示您重新输入您的凭据。请这样做。


4

我从Windows中的“凭据管理器”中删除了gitlab凭据,并成功推送


4

转到控制面板->凭据管理器-> Windows凭据,选择github或gitlab凭据并进行修改。这是针对Windows10的



2

如果您尝试使用现有的Git帐户登录Gitlab。您需要首次重置Gitlab的密码。

  1. 步骤:点击个人资料图标(位于右上角的下拉菜单),导航至设置。
  2. 步骤:转到设置
  3. 步骤:单击锁定图标或glyphicon图标(即密码)。
  4. 步骤:输入Gitlab的新密码。

2

所以对我来说,问题是我通过将GitHub帐户链接到该帐户来创建了GitLab帐户。这意味着该帐户没有正式的密码,因为该密码是通过GitHub和GitLab之间的热链接创建的。我通过转到GitLab设置->密码->并编写与我的GitHub帐户相同的密码来修复它。


2

以上解决方案均不适用于我,并且我的笔记本电脑没有管理员权限,但最终导致我使用git tools凭证存储文档

我的安装Windows 10 | git版本2.18.0.windows.1 | 通过HTTPS链接克隆

如果将wincred用作凭据助手,则此解决方案有效:

> git config --global credential.helper
wincred

将帮助程序更改为“缓存”应该可以解决问题,因为它将要求您再次提供凭据。要将其设置为缓存,只需键入:

> git config --global credential.helper cache

检查您的更新是否处于活动状态:

> git config --global credential.helper
cache

您现在应该能够像以前一样克隆/提取/获取。



1

我尝试使用存储库的浏览器URL

git clone $(browserURL)

它提示输入我的用户名,然后输入密码

当时效果很好


1

当Windows凭据管理器要求您的凭据访问GitLab时,这些是您在访问GitLab时使用的用户名和密码。EG:使用您的电子邮件和密码。


1

当我遇到同样的问题时

我通过删除文件“ passwd”来解决它

C:\Users\<USERNAME>\AppData\Local\Atlassian\SourceTree

删除Sourcetree后,将提示您输入密码。

Note:
OS Version : win10 
Sourcetree Version:  3.1

1

我相信我来这里不晚。但是我认为这会帮助新偷窥者!

我的错误是: 远程:HTTP基本:访问被拒绝

remote:您必须为HTTP上的Git使用具有'read_repository'或'write_repository'范围的个人访问令牌。

远程:您可以在https://gitlab.com/profile/personal_access_tokens生成一个

致命:“ https://gitlab.com/PROFILE_NAME/REPO_NAME.git/ ”的身份验证失败

我正在使用Ubuntu,但这对我有用:

  1. 转到https://gitlab.com/profile/personal_access_tokens
  2. 创建新令牌并标记为所有。
  3. 复制您的令牌
  4. 现在转到您的终端并按如下所示粘贴。

git clone https:// oauth2:YOUR_TOKEN@gitlab.com/PROFILE_NAME/REPO_NAME.git/



0

对于Mac用户:

  1. 转到钥匙串并删除gitlab帐户
  2. 转到终端中的项目路径,只需键入git pull
  3. 然后将要求您输入gitlab的用户名和密码
  4. 在配置文件部分的gitlab帐户中输入您的用户名。
  5. 然后,在此输入您的更新密码。
  6. 在这里,再次尝试推送您的代码,这可能会对您有所帮助。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.