GitLab remote: HTTP Basic: Access denied and fatal认证

不像这篇文章,我在macOS上。

我已经在GitLab中配置了密码。我也有一个SSL密钥创建的项目是在GitLab。

当我在新项目中使用现有文件夹并执行以下步骤时,系统会提示我输入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

输入密码后,我得到以下错误。

remote: HTTP Basic:拒绝访问 fatal: Authentication failed for 'https://gitlab.com/myname/myproject'

1049183 次浏览

注意:不要将GitLab SSL设置GitLab SSH密钥混合使用。

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

关于您的HTTPS证书,请仔细检查:

  • 禁用双因素认证,或
  • 如果您的用户名或密码中有特殊字符,或者
  • 如果你有一个Git凭证帮助:git config credential.helper

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

$ git config——global http。emptyAuth真实 < /代码> < / p >

Source .

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

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

git克隆$(browserURL)

它提示输入我的用户名和密码

它运行得很好

您可以尝试以下命令:

git config --system --unset credential.helper

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

如果你试图用你现有的Git帐户登录Gitlab。

.输入Gitlab用户密码
  1. 步骤:通过点击个人资料图标(右上角的下拉菜单)导航到设置。
  2. 步骤:进入设置
  3. 步骤:单击锁图标或象形文字图标(i。e密码)。
  4. 步骤:输入Gitlab的新密码。

试试这个:

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

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

下面是我需要运行的命令来解决这个问题:-

git config --global credential.helper wincred

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

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

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

    git config --system --unset credential.helper < / p >

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

  3. 在使用像__ABC0或git push这样的git命令之后,它会问我用户名和密码。应用有效的用户名和密码和git命令工作。

希望这对你有所帮助……

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

对我来说,以下方法有效:

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

  1. 在GitLab中,在右上角,进入“个人配置文件→设置→访问令牌” 步骤1 < / p >

  2. 创建一个新的个人访问令牌(检查api选项) 步骤2 < / p >

  3. < p > git clone ...

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

    Step 3

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

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

每当我被迫修改Windows密码时,上面的答案都帮不了我。

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

  1. 进入Windows 证书管理器。这是通过在EN-US Windows中按下Windows键并输入“credential”来完成的。在其他 本地化的Windows变体,您需要使用本地化术语(请参阅

    . {/p> .

    另外你可以使用快捷方式 control /name Microsoft.CredentialManager在运行对话框中 (WIN + R) < / p >

  2. 编辑Windows凭证下的git条目,替换旧的

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

打开命令提示符< < em >管理员/ em >,然后运行以下命令:

git config --system --unset credential.helper

这对我来说很有效:我用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

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

进入Windows凭据管理器(按Windows键并键入' Credential '),在Windows凭据下编辑git条目。请用新密码替换旧密码。

Windows Credential Manager

上面的解决方案都不适合我我的笔记本电脑没有管理权限,但他们最终引导我到Git工具凭证存储文档:

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

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

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

进入windows计算机上的凭证设置并删除https://gitlab.com/sobopla/Geronimod.git

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

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

    • 并不总是最好的解决方案;在我工作的地方,尽管我们正在慢慢地使用GIT,但我们的应用程序在网络驱动器上,所以如果我这样做,即使别人在做某个特性,也只有我可以推动更改。
    • 李< / ul > < / >
    • 我不能从GIT Bash运行git config --system --unset credential.helper,所以我必须打开一个管理命令提示符并在那里运行它(这假设你安装了GIT,这样它就可以从GIT Bash和命令提示符运行)。从Bash,我得到一个“无法锁定配置文件”错误。

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

因此,键入“证书管理器”(rus。“Диспетчер Учетных Данных”),然后转到你的git服务帐户,也可以修改数据。

enter image description here

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

enter image description here

Mac用户:

  1. 去钥匙链和删除gitlab帐户
  2. 转到终端的项目路径,简单地键入git pull
  3. 然后将要求您输入gitlab的用户名和密码
  4. 输入您的用户名,您将在配置文件部分的gitlab帐户中找到该用户名。
  5. 然后在这里输入您更新的密码。
  6. 开始,再次尝试推动你的代码,它可能会帮助你们。

当我遇到同样的问题时,

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

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

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

Note:
OS Version : win10
Sourcetree Version:  3.1

gitlab ->设置——>访问令牌创建一个新的访问令牌

仅供参考,当我在gitlab中生成并粘贴ssh_rsa.pubSSH密钥后,我错误地使用URL时遇到了这个问题。

$ git clone http://gitlab.x
Cloning into 'start-up'...
remote: HTTP Basic: Access denied
remote: You must use a personal access token with 'api' scope for Git over HTTP.
remote: You can generate one at http://gitlab.x

通过使用下面的URL来解决。

$ git clone gitlab@gitlab.xxx.com/your_project.git

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

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

助理会问你密码

Mac上的Sourcetree也有同样的问题

处理步骤:删除keychain访问中的密码。

enter image description here

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

当你尝试再按一次时,它会要求你输入密码。

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

  1. 移动到. /配置文件并编辑它,
  2. 删除无效的URL(如果有的话),并像下面这样粘贴有效的git SSH / HTTP URL:
[remote "origin"]
url = git@gitlab.com:prat3ik/my-project.git

而且它真的起作用了!!

我在使用GitLab时也遇到了同样的问题,下面是我解决它的方法:

  1. 生成一个访问令牌:要做到这一点,请转到设置/访问令牌,然后给它一个名称和有效期并提交。

  2. 在你的项目文件中打开“配置”文件。目录:/.git/config

  3. 你会发现这样的一行:

    < p >(远程“起源”) url = https://【用户名】(令牌):@your-domain.com/your-project.git

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

  5. 保存更改。

我曾经遇到过同样的问题,一旦我输入了错误的凭证,我的git帐户。对我来说有用的东西是,打开钥匙链访问->密码->找到你输入的错误密码并更新它并点击保存,之后你将能够在git上执行操作而没有任何问题。

我希望这对你有用。

我想我来晚了一点。但我觉得这对新人有帮助!

我的错误是: remote: HTTP Basic:拒绝访问

远程:你必须为HTTP上的Git使用'read_repository'或'write_repository'范围的个人访问令牌。

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

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

我用的是Ubuntu,但这对我来说很管用:

  1. Goto https://gitlab.com/profile/personal_access_tokens
  2. 创建新的令牌和标记检查。
  3. 复制令牌
  4. 现在转到终端,像这样粘贴它。

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

奇怪的是,对我有效的方法是退出并重新登录到GitLab web UI。

我完全不知道为什么会这样。

这当然是一个错误,ssh在我的一台机器上工作,但在另一台机器上不工作。我解出来了,跟着这些。

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

enter image description here

或者你可以在现有的repo中使用此命令将remote设置为http,并使用此命令git remote set-url origin https://gitlab.com/[用户]/ [repo-name] .

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

在与git进行任何交易之前,您的机器都会对您的身份验证进行git检查

    SSH密钥令牌存在于您的机器中,并与git-repo共享(最优先) 或< / >强
  1. 使用用户名/密码(最常用)

为什么会发生这种情况

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

解决方案

前往,控制面板和搜索证书管理器寻找你的使用git url和改变信用。

好了,这基本上适用于每一个窗口保持跟踪

在mac上使用KeyChain ->登录→密码:change Password

我也有同样的问题,但在我继续执行这里的任何建议之前,我检查了我是否仍然登录到我的github帐户。我在Gitlab账户工作时遇到了这个问题。我发现我仍然登录在我的Github帐户,我立即注销了帐户。我尝试在Gitlab再次克隆,我没有错误,克隆成功。

我必须执行以下两个步骤来解决这个问题

  1. 创建ssh-keygen并将公钥添加到我的gitlab帐户

  2. 使用以下命令禁用HTTPS

    Git配置——global http。sslVerify假

enter image description here

除了凭据管理器中的无效凭据之外,还有另一个导致此错误的原因。

我遇到了一个问题,我的帐户使用LDAP进行身份验证,但仍然设置了密码过期日期。由于服务器被配置为仅使用LDAP身份验证,密码过期在web UI中不可见,并且仅在GitLab发布了13.12.2版的安全补丁之后才成为问题。

你可以通过GitLab Rails控制台. properties检查和编辑用户帐户的password_expires_at属性。将其设置为nil解决了这个问题,并使LDAP身份验证再次工作。

你必须用当前访问令牌更新.git目录下的配置文件。 参见This 链接,我解决了意外更改访问令牌引起的问题。我使用的是GITLABCLion

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

  1. 打开Windows搜索
  2. 类型:Git Bash
  3. 单击鼠标第二个按钮,选择“以管理员身份运行”
  4. 进入项目目录:cd "C:\path\to\our\project\name"
  5. 执行命令:git config——system——unset credentials .helper 注意:在linux下使用sudo命令执行此命令:sudo git config——system——unset credentials .helper

对我来说,我创建了一个个人访问令牌,然后更新了我的git起源,如下所示:

https://<personal_access_token_name>:<personal_access_token>@gitlab.com/username/your-project.git
我也有同样的问题,我遵循这些步骤,它已经解决了。 步骤1:—设置用户名和密码 步骤2:git push -f origin

这个方法在Windows和Mac上都适用:

https://Username:accessToken@git.gitlab.com/path/to/repo/my-app.git

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