GitLab remote:HTTP Basic:拒绝访问和致命身份验证

jea*_*ode 175 git gitlab

我在mac OS上不像这篇文章:`git push origin <branchname>`throws error`HTTP Basic:Access denied` 我在GitLab中配置了密码.我在GitLab上创建项目后创建了SSL密钥.

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

现有文件夹

我被提示输入我的GitLab用户名和密码.输入密码后,我得到:__CODE__

mpr*_*pro 325

每次我被迫更改Windows密码时都会发生这种情况,而上述答案都没有对我有帮助.

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

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

  • 注意:在您的语言系统中输入。罗斯:“凭证管理器”=“Диспетчер Учетных Данных” (8认同)
  • 在德语中,它是“Anmeldeinformationsverwaltung”,然后是“Windows-Anmeldeinformationen”。 (6认同)
  • 很好的答案。对于您的工作帐户尤其如此,您必须不时更改密码。 (3认同)
  • 在法语中,它是“Gestionnaire d'informations d'identification”。 (3认同)
  • 谢谢,这对我也很有效,并解决了问题。如果您的设备上有其他Github帐户,则需要此解决方案 (2认同)
  • 即使我使用多个gilab帐户,它也对我有用,所以我用我在凭据管理器中使用的相同密码更新了所有gitlab帐户,并解决了问题,谢谢@mpro (2认同)
  • @Maarti:我有“身份识别”。也许这取决于它所使用的 Windows 版本?我使用的是 Windows 10 企业版。 (2认同)

小智 127

   git config --system --unset credential.helper
Run Code Online (Sandbox Code Playgroud)

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

  • 请注意,在Windows上,您需要以管理员身份运行它,否则您将获得权限错误 (15认同)
  • 如果取消设置凭据助手,则每次连接到 GIT 存储库时都必须提供用户名和密码。要解决此问题,您可以使用以下命令再次设置帮助程序: git config --global credential.helper store (7认同)
  • 这取决于您将凭据放在何处。如果前面的命令不起作用,请尝试使用全局标志:`git config --global--unset credential.helper` (4认同)
  • 这是OP最相关的答案,因为它解决了这个问题,并且没有继续“在Windows上”的切线。另外,作为旁注,如果您的用户无权访问“/etc”,您可能需要以“sudo”运行此命令 (2认同)

Bha*_*mor 65

我得到了同样的错误,我解决了这个问题:

  1. 从cmd应用命令

    git config --system --unset credential.helper

    当我执行上面的命令时,我又遇到了另一个错误

    错误:could not lock config file C:\Program Files\Git\mingw64/etc/gitconfig: Permission denied

  2. 然后我从C:\ Program Files\Git\mingw64/etc / location中删除了gitconfig文件(注意:此路径在MAC中将与"/ Users/username"不同)

  3. 之后使用git命令git pull或者git push,它询问我的用户名和密码.应用有效的用户名和密码以及git命令工作.

希望对你有帮助...

  • 如果出现该错误,您只需以管理员身份运行命令提示符,错误就会消失. (10认同)
  • 也可以使用 **--global** `git config --global --unset credential.helper` 尝试这种方式 (4认同)

Jav*_*lex 45

对我来说,以下工作:

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

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

  • 哈哈,没有找到任何地方告诉我应该在密码字段中使用访问令牌...... (20认同)
  • 最好的。今天救了我。 (9认同)
  • 这应该是公认的答案。根据安全配置,在某些项目中这是必要的。Gitlab 密码永远不会起作用,只需创建并使用您的令牌即可。(将您的令牌保存在安全的地方以供将来使用)。 (6认同)
  • 对我不起作用,不知道为什么,我已经为此苦恼太久了 (3认同)
  • 或者,在 Windows 上,将 Windows 凭据管理器中的密码替换为令牌。 (2认同)

Pau*_*ado 31

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


小智 26

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

Windows凭据管理器


Pig*_*ras 17

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

$ git config --global http.emptyAuth true

资源


小智 17

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

在此处输入图片说明


小智 16

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

在使用 git 进行任何交易之前,您的机器会进行 git 检查您的身份验证,这可以使用

  1. 存在于您的机器中并与 git-repo 共享的 SSH 密钥令牌(首选)
  2. 使用您的用户名/密码(最常用)

为什么会发生这种情况

简而言之,发生这种情况是因为存储在您机器中的凭据不是真实的,即您存储在机器中的密码可能已经从 git 中的密码更改了

解决方案

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

你去吧,这几乎适用于所有窗户跟踪的东西


gal*_*007 13

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

https://**username**@gitlab.com/user/projectgit
Run Code Online (Sandbox Code Playgroud)

助手会询问您密码

  • https://&lt;用户名&gt;:&lt;密码&gt;@gitlab.com/user/project.git (2认同)

小智 12

我相信我来得有点晚了。但我认为这会帮助新的窥视者!

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

remote:对于 Git over HTTP,您必须使用具有“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/


Von*_*onC 11

注意:不要混用GitLab SSL设置GitLab SSH密钥.

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

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

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

  • 我解决了,只需在 Windows Credentials 中编辑 GitLab 的密码即可,谢谢! (3认同)

MD.*_*que 11

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

git config --system --unset credential.helper
Run Code Online (Sandbox Code Playgroud)


小智 9

尝试这个:

  1. 去: C:/Users/(YourUserName)/
  2. 删除文件 .gitconfig

  • 仅此一项对我有用,非常感谢! (3认同)

Vik*_*dey 9

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

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

git config --global credential.helper wincred
Run Code Online (Sandbox Code Playgroud)

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


San*_*njX 8

进入 Control Panel->Credential Manager->Windows Credentials 选择 github 或 gitlab 凭据并修改它。这是用于 windows10


Art*_*718 8

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

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

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


小智 8

当我遇到同样的问题时,

我通过删除文件“passwd”解决了这个问题

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

删除Sourcetree后会提示输入密码。

Note:
OS Version : win10 
Sourcetree Version:  3.1
Run Code Online (Sandbox Code Playgroud)


Dyn*_*ris 7

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

因此,在Windows搜索菜单中键入“ 凭据管理器 ”(rus。“ ????????? ?????????? ??????”),然后转到您的git服务帐户并更改数据。

在此处输入图片说明


Pra*_*tel 7

对我来说,它是放置在配置文件中的其他一些 git URL,所以我手动更改了它:

  1. 移至.git/config文件并编辑它,
  2. 删除无效的 URL(如果存在)并粘贴有效的 git SSH/HTTP URL,如下所示:
[remote "origin"]
        url = git@gitlab.com:prat3ik/my-project.git
Run Code Online (Sandbox Code Playgroud)

它正在工作!


Bad*_*adr 7

我在使用 GitLab 时遇到了同样的问题,以下是我修复它的方法:

  1. 生成访问令牌:为此,请转到settings/access token,然后为其指定名称和到期日期并提交。

  2. 在您的项目文件中,打开“.git”目录中的“config”文件:/.git/config

  3. 你会发现这样一行:

    [远程“来源”] url = https://[用户名]:[令牌]@your-domain.com/your-project.git

  4. 您将拥有 gitlab 用户名而不是 [username],并且您应该将 [token] 替换为步骤 1 中生成的令牌。

  5. 保存更改。


小智 6

对于 Mac 用户:

  1. 转到钥匙串并删除 gitlab 帐户
  2. 转到终端中的项目路径并只需输入 git pull
  3. 然后你会被要求输入 gitlab 的用户名和密码
  4. 输入您的用户名,您可以在个人资料部分的 gitlab 帐户中找到该用户名。
  5. 然后在此处输入您更新的密码。
  6. 在这里,我们再次尝试推送您的代码,它可能会对你们有所帮助。


hel*_*per 6

奇怪的是,对我有用的是注销并重新登录 GitLab Web UI。

我根本不知道为什么这会起作用。


小智 5

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


Bur*_*uay 5

它对我有用:我使用Mac,我在finder上写下了路径:

〜/库/应用程序支持/SourceTree

我删除了 auth 文件,它应该是这样的

yourUserName@STAuth-gitlab.yourAdress

然后尝试从源代码树中推送和拉取代码并且它起作用了。

您还可以阅读以下答案:

https://community.atlassian.com/t5/Sourcetree-questions/How-to-update-HTTP-S-credentials-in-sourcetree/qaq-p/297564


Mom*_*ill 5

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


lko*_*tka 5

上述解决方案都不适合我,而且我在笔记本电脑上没有管理员权限,但它们最终引导我找到了git 工具凭证存储文档

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

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

> git config --global credential.helper
wincred
Run Code Online (Sandbox Code Playgroud)

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

> git config --global credential.helper cache
Run Code Online (Sandbox Code Playgroud)

检查您的更新是否有效:

> git config --global credential.helper
cache
Run Code Online (Sandbox Code Playgroud)

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


rot*_*ava 5

Mac 上的 Sourcetree 也有同样的问题

解决方案:删除钥匙串访问中的密码。

在此处输入图片说明

https://community.atlassian.com/t5/Sourcetree-questions/SourceTree-quot-fatal-Authentication-failed-for-quot/qaq-p/201844

当您再次尝试推送时,它会询问您的密码。


小智 5

这当然是一个错误,ssh 可以在我的一台机器上运行,但不能在另一台机器上运行。我解决了,按照这些。

  1. 生成具有永不过期日期的访问令牌,并选择所有可用选项。
  2. 删除现有的 SSH 密钥。
  3. 使用 https 而不是 ssh 克隆 repo。
  4. 使用用户名,但使用生成的访问令牌而不是密码。

在此处输入图片说明

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


Shy*_*dda 5

这在 Windows 和 Mac 上也适用于我:

https://Username:accessToken@git.gitlab.com/path/to/repo/my-app.git
Run Code Online (Sandbox Code Playgroud)

accessToken是您在 GitLab 中创建的个人访问令牌。