ChatGPT解决这个技术问题 Extra ChatGPT

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

this post 不同,我使用的是 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 中遇到此问题...此链接可能会有所帮助... stackoverflow.com/questions/17659206/…
如果您的 GitLab 帐户设置了密码到期日期,但您使用的是另一种身份验证方法,例如 LDAP,也会发生此错误。然后 GitLab 甚至没有根据 LDAP 服务器检查您的凭据就抛出 403。

T
Troll

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

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

转到 Windows 凭据管理器。这是在 EN-US Windows 中通过按 Windows 键并键入“凭据”来完成的。在其他本地化的 Windows 变体中,您需要使用本地化术语(请参阅注释以获取一些示例)。或者,您可以在运行对话框中使用快捷方式控制 /name Microsoft.CredentialManager (WIN+R) 编辑 Windows Credentials 下的 git 条目,用新密码替换旧密码。


谢谢,这对我也有用并解决了问题。如果您的设备上有不同的 Github 帐户,则需要此解决方案
尽管我使用了多个 gilab 帐户,但它也对我有用,所以我做了什么,我用我在凭据管理器中的相同密码更新了我的所有 gitlab 帐户,问题解决了Thanks@mpro
注意:在您的语言系统中输入。罗斯:“凭据管理器”=“Диспетчер Учетных Данных”
在德语中,它是“Anmeldeinformationsverwaltung”,然后是“Windows-Anmeldeinformationen”。
在法语中,它是“Gestionnaire d'informations d'identification”。
T
Troll

对我来说,以下工作:

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

在 GitLab 中,在右上角,转到个人资料 → 设置 → 访问令牌 创建一个新的个人访问令牌(检查 api 选项) git clone ... 当您被要求输入密码时,复制并粘贴访问令牌而不是你的 GitLab 密码


或者,在 Windows 上,在 Windows 凭据管理器中替换令牌的密码。
我已经创建了一个令牌,但不知道在此之后您使用它而不是密码登录。谢谢你的提示。
这应该是公认的答案。根据安全配置,在某些项目中是必要的。 Gitlab 密码永远不会起作用,只需创建和使用您的令牌。 (将您的令牌保存在安全的地方以备将来使用)。
大声笑,没有找到任何地方告诉我应该在密码字段中使用访问令牌...
对我不起作用,不知道为什么,我已经为此苦恼太久了
E
Eric Bolinger

您可以尝试以下命令:

git config --system --unset credential.helper

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


请注意,在 Windows 上您需要以管理员身份运行它,否则您会收到权限错误
这取决于您将凭据放在哪里。如果前面的命令不起作用,请尝试使用全局标志:git config --global--unset credential.helper
这是 OP 最相关的答案,因为它解决了这个问题,并且没有继续一些“在 Windows 上”的切线。此外,作为旁注,如果您的用户无权访问 /etc,您可能需要将此命令作为 sudo 运行
如果您取消设置凭证助手,则每次连接到 GIT 存储库时都必须提供用户名和密码。要解决此问题,您可以使用以下命令再次设置助手: git config --global credential.helper store
如果您没有管理员访问权限,请忽略 --system 或 --global 标志并仅为您当前的 git 存储库设置凭证助手
B
Barry Michael Doyle

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

从 cmd 应用命令(以管理员身份运行) git config --system --unset credential.helper 然后我从 C:\Program Files\Git\mingw64/etc/ 位置删除了 gitconfig 文件(注意:此路径在 MAC 中会有所不同像“/Users/username”)之后使用 git 命令,如 git pull 或 git push,它要求我输入用户名和密码。应用有效的用户名和密码和 git 命令工作。

希望对你有帮助...


如果您收到该错误,您只需以管理员身份运行命令提示符,错误就会消失。
仅供参考:只需重置配置(您的第一个 cmd)即可。然后我做了我的 git push 和 blammo!我认为这是因为我的商店需要每月更改密码,所以内部 git 实验室出了问题。
也可以通过 --global git config --global --unset credential.helper 尝试这种方式
删除 gitconfig 文件时出现错误:“错误设置证书验证位置:cafile”
P
Paulo Morgado

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


很好的答案对我来说很好,因为我的 git 是私有的,谢谢
谢谢。虽然对我来说必须用 SSL repo url 替换它,但你的回答让我帮忙。我赞成它。
谢谢。我在使用 BitBucket 或 Github 时没有遇到这样的问题。使用 GitLab,我必须创建个人访问令牌,然后在远程源中使用它 git remote set-url origin https://usernameHere:personalAccessTokenHere@gitlab.com/usernameHere/projectNameHere
是的,这行得通,但是每次都放入非常粗糙。以前也能正常使用,很奇怪...
J
JJJ

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

https://i.stack.imgur.com/JxDfZ.png


OP 在 macOS 上,而不是在 Windows 上。
这对 OP 没有帮助,但它在我的 Windows 开发盒上就像一个魅力。
非常简单易行。谢谢你!
g
gal007

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

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

助手会问你密码


这对我有用。超级简单。
b
barbsan

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

https://i.stack.imgur.com/LLMTI.png


这成功了,就我而言,这是因为公司强迫我们每隔几个月更改一次域密码。此更改未更新此凭据管理器中的凭据。一旦我更新了密码,它就可以工作了。
P
Pigueiras

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

$ git config --global http.emptyAuth true

Source


我没有使用 Kerberos,但感谢您的回复。
Kerberos 不是必需的。谢谢! git-scm.com/docs/git-config
今天早上在 Windows 上完成了 Git 的全新安装之后。这个答案为我解决了 Access denied 错误。
天哪-我经历了所有其他建议,最后这个建议奏效了。确实是在使用 Kerberos!
h
halfer

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

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

git config --global credential.helper wincred

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


不适合我,我尝试在 sourcetree 客户端中没有任何效果
V
VonC

注意:不要混合 GitLab SSL settingsGitLab SSH keys

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

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

如果禁用了双因素身份验证,或者

如果您的用户名或密码中有特殊字符,或者

如果你有 Git 凭证助手:git config credential.helper。


我的用户名中有一个空格,因为我通过 Github 对 Gitlab 进行了身份验证 - 禁用了双因素身份验证 - 你是什么意思“如果我有 Git 凭证助手?
@jeancode 我的意思是:当你输入 git config credential.helper 时你会看到什么:这可能缓存了错误的凭据。
@jeancode 对于空间,您是否对其进行了百分比编码? (en.wikipedia.org/wiki/Percent-encoding#Character_data:%20)
由于在启用两因素身份验证时尝试使用部署密钥,我收到了错误。显然,如果启用了两个因素,您只能使用个人访问令牌。
我解决了,只是在 Windows Credentials 中编辑 GitLab 的密码,谢谢!
M
Manasvi Mittal

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

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

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

为什么会发生这种情况

简而言之,这是因为存储在您机器中的凭据不真实,即您存储在机器中的密码可能与 git 中的密码不同,因此

解决方案

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

你去吧,这几乎适用于所有窗口跟踪


感谢@chuklore 很高兴看到人们希望了解这个问题,而不仅仅是快速修复。
D
Dyno Cris

如果您更改 git 服务帐户(GitHub 或 GitLab、Bitbacket 等)的登录名或密码,就会发生这种情况。您还需要在 Windows 凭据管理器中更改它。

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

https://i.stack.imgur.com/iPLCC.png


虽然我没有更改我的用户或密码(它是 AD 凭据),但由于 Gitlab 服务器的重建而发生在我身上,并且上述解决方案已修复此错误。
G
Gaurav

我相信我来这里有点晚了。但我认为这将有助于新的窥视者!

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

远程:对于基于 HTTP 的 Git,您必须使用具有“read_repository”或“write_repository”范围的个人访问令牌。

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

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

我在 Ubuntu 上,但这对我有用:

转到 https://gitlab.com/profile/personal_access_tokens 创建新令牌并标记检查所有人。复制您的令牌现在转到您的终端并像这样粘贴它。

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


<USERNAME>:<PERSONAL_TOKEN>@gitlab.com/<USERNAME>/<REPO_NAME>.git 在配置“镜像存储库”时对我有用
先生,您是我今天的英雄!
对没有个人资料名称的我来说有效。混帐克隆 oauth2:YOUR_TOKEN@gitlab.com/REPO_NAME.git
M
MD. Shafayatul Haque

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

git config --system --unset credential.helper

无法锁定配置文件 C:\Program Files\Git\mingw64/etc/gitconfig: Permission denied
您不使用配置文件,只需以管理员身份打开命令提示符并运行命令。希望这可以帮助
尝试使用 sudo git config --system --unset credential.helper
S
Stephen Rauch

尝试这个:

转到: C:/Users/(YourUserName)/ 删除文件 .gitconfig


不要这样做,这通常会破坏您的设置
A
Artorias2718

我有两种方法可以解决这个问题:

我将我的用户名添加到远程 URL 的前面 (https://username@gitRepoURL) 并不总是最好的解决方案;在我工作的地方,尽管我们正在慢慢转向使用 GIT,但我们的应用程序都在网络驱动器上,所以如果我这样做,即使其他人致力于某个功能,也只有我可以推送更改。我无法从 GIT Bash 运行 git config --system --unset credential.helper,所以我必须打开一个管理命令提示符并在那里运行它(假设您安装了 GIT,这样它就可以从 GIT Bash 和命令提示符)。在 Bash 中,我收到“无法锁定配置文件”错误。


有关详细信息,请参阅:git config -l。也可以在上面尝试使用 --global 而不是 --system
S
Sitecore Sam

这肯定是一个错误,ssh 可以在我的一台机器上工作,但不能在另一台机器上工作。我解决了,按照这些。

生成一个永不过期的访问令牌,然后选择所有可用选项。删除现有的 SSH 密钥。使用 https 而不是 ssh 克隆 repo。使用用户名,但使用生成的访问令牌而不是密码。

https://i.stack.imgur.com/MSeru.png

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


是的,上面的答案对我不起作用,这很简单——“git remote set-url origin https://new-token-name:token-value@gitlab.com/path/to/repo/
N
NicolasElPapu

Mac 上的 Sourcetree 也有同样的问题

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

https://i.stack.imgur.com/LWVqV.png

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

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


S
SanjX

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


s
saiedkia

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


S
SAMUEL

当我遇到同样的问题时,

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

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

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

Note:
OS Version : win10 
Sourcetree Version:  3.1

这解决了我在源代码树上的问题。
这解决了我对 Sourcetree 的问题。
P
Pratik Patel

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

移至 .git/config 文件并编辑它,删除无效 URL(如果存在)并粘贴有效的 git SSH/HTTP URL,如下所示:

[remote "origin"]
        url = git@gitlab.com:prat3ik/my-project.git

它正在工作!


B
Badr

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

生成访问令牌:为此,请转到设置/访问令牌,然后为其命名和到期日期并提交。在您的项目文件中打开“.git”目录中的“config”文件:/.git/config。你会发现这样一行: [remote "origin"] url = https://[username]:[token]@your-domain.com/your-project.git 你将拥有你的 gitlab 用户名而不是 [username] ,并且您应该将 [token] 替换为您在步骤 1 中生成的令牌。保存更改。


A
ATOMP

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

我不知道为什么这会奏效。


B
Burcu Kutluay

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

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

我删除了应该是这样的身份验证文件

yourUserName@STAuth-gitlab.yourAdress

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

您还可以阅读以下答案:

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


v
vikash kumar

对于 Mac 用户:

转到钥匙串并删除 gitlab 帐户在终端中转到您的项目路径,只需输入 git pull 然后您将被要求输入 gitlab 的用户名和密码 输入您的用户名,您将在配置文件部分的 gitlab 帐户中找到该用户名。然后在此处输入您更新的密码。在这里,我们再次尝试推送您的代码,它可能对你们有所帮助。


A
Andreas Forslöw

就我而言,我重新安装了最新版本的 git(当前为 2.16.2)。我不知道是不是我的旧版本的 git 过时了,但我在 github page 上读到,如果您偶然发现 https 克隆错误,应该这样做。我认为这是一个 https 克隆错误,因为错误集中在 HTTP Basic,而 GitLab 使用 HTTPS。在这个思考过程中我可能错了,但解决方案对我的情况有所帮助,我希望这对未来的任何人都有帮助!


l
lkostka

上述解决方案均不适合我而且我的笔记本电脑没有管理员权限,但它们最终将我带到了 git tools credential storage doc

我的设置 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

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


p
prashant17

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