Git推送“认证失败”的结果;

我已经使用GitHub有一段时间了,我对git addgit commitgit push都很满意,到目前为止没有任何问题。突然我出现了一个错误

fatal:认证失败

在终端中,我克隆了一个存储库,处理了一个文件,然后使用git add将文件添加到提交日志中,当我使用git commit时,它工作得很好。最后,git push要求输入用户名和密码。我输入正确,每次我这样做,它都会显示相同的错误。

这个问题的原因是什么,我该如何解决它?

.git/config的内容是:

[core]repositoryformatversion = 0filemode = truebare = falselogallrefupdates = true[remote "origin"]url = http://www.github.com/######/Random-Python-Testsfetch = +refs/heads/*:refs/remotes/origin/*[branch "master"]remote = originmerge = refs/heads/master[user]name = #####email = ############
1802364 次浏览

首先,你可以确保使用正确的URL:

git remote set-url origin https://github.com/zkirkland/Random-Python-Tests.git

然后,如果它之前工作,如果它没有要求您的用户名,这一定是因为您将凭据(登录名/密码)存储在$HOME/.netrc文件中,作为这里介绍的。您可以再次检查这些设置,并确保您的代理(如果有的话)没有更改。

检查git config --global credential.helper的输出。
并确保凭证是你的GitHub用户帐户,和PAT(个人访问令牌).

你可以使用Git凭据助手更新您的凭据,如下所示


如果这仍然不工作,你可以切换到SSH URL:

git remote set-url origin git@github.com:zkirkland/Random-Python-Tests.git

但这意味着您已经在帐户设置中发布了SSH公钥。


有关Visual Studio Code的具体内容,请参见& #0:缺少或无效的凭证。致命:“https://github.com/username/repo.git”认证失败"

您可以取消选择git.terminalAuthentication设置以避免出现错误消息。

我也有同样的问题。我这样设置URL:

# 0

我还从配置文件中删除了这个条目:askpass = /bin/echo

然后“git push”;问我的用户名和密码,这一次它工作。

如果你在你的GitHub帐户中启用了双因素身份验证,你将无法使用您的帐户密码通过HTTPS推送。而不是您需要生成一个个人访问令牌。这可以在GitHub帐户的应用程序设置。使用此令牌作为您的密码应该允许您通过HTTPS推送到远程存储库。

.使用您的用户名

创建个人访问令牌

如果存储库设置为HTTPS,您可能还需要更新存储库的起源。切换到SSH:

git remote -vgit remote set-url origin git@github.com:USERNAME/REPONAME.git

我认为由于某种原因,GitHub期望URL没有子域www。当我使用(例如)

git remote set-url origin https://www.github.com/name/repo.git

它给出了以下信息:

remote: Anonymous access to name/repo.git deniedfatal: Authentication failed for https://www.github.com/name/repo.git

然而,如果我使用

git remote set-url origin https://github.com/name/repo.git

它工作得非常好。这对我来说没什么意义…但我猜是0

另外请注意,GitHub存储库网页上提供的克隆url不包括www。

我不确定我做了什么得到这个错误,但做:

git remote set-url origin https://...

对我没用。然而:

git remote set-url origin git@bitbucket.org:user/repo

以某种方式工作。

我也遇到了错误(这就是为什么我被降落在这里),但没有一个建议对我有用。这是我第一次尝试将本地Git存储库部署到Azure

当我得到这个错误,我重置了我的凭证(通过点击链接在Azure)几次尝试后。问题是,在这一点上,它告诉我我的用户名已经被占用,所以我也把我的用户名改为另一个。

最后,我手动删除了本地驱动器上的.文件夹,并顺利地重新部署了它。

问题陈述:“git致命认证失败”。我用的是第一条。

解决方案:

我只是删除了使用Bitbucket访问管理的用户,然后添加了相同的用户。.gitconfig文件很简单:

[user]name = BlaBlaemail = blabla@gmail.com
[push]default = simple

在Windows系统上,这个功能对我很有效,它还能记住我的证书:

  1. 运行# < p > 0

  2. 指向存储库目录

  3. 运行# < p > 0

如果问题存在,请提供正确的凭据:

如果你使用的是Android Studio 2.1测试版,那么这就是一个bug。升级到beta 2 (3 MB更新文件)。这对我很管用。

仅从config文件更改:

url = http://www.github.com/###user###/Random-Python-Tests

:

url = http://###user###@github.com/###user###/Random-Python-Tests

对我来说,我忘记了我已经在github.com上更改了密码,我的shell身份验证的钥匙链从未更新到新密码。

从我的钥匙链中删除所有Git,然后重新运行Git请求帮助解决了这个问题,再次提示我输入新密码。

只是在这里,为我解决的问题是我只是取消了最初的提示,SSH打开了我的Bitbucket都帐户,我在那里输入密码,一切都正常工作。

在Windows上,如果您在输入正确的密码和用户名时发现身份验证错误问题,那么这是Git的问题。要解决这个问题,在机器上安装Git时,取消选中启用Git凭证管理器选项。

Enter image description here

确保你有权限来推送。

read ***write*** admin

也许你最近更改了Git帐户的密码。您可以尝试使用-u选项的git push行:

git push -u origin branch_name_that_you_want_to_push

执行上述命令后,它将要求输入密码。提供更新后的密码。

我在Windows上也遇到了同样的问题。大多数时候,由于使用多个Git帐户,我通常会遇到这个问题。如果您使用的是Windows操作系统,请以管理员身份打开终端并尝试再次运行这些命令。请确保您具有管理员权限。

我遇到过

git fetch
fatal: Authentication failed for 'http://...."

在我的Windows密码过期并被更改之后。在Windows 证书管理器下多次获取、重新启动甚至重新安装Git都没有帮助。

令人惊讶的是,正确答案在评论中,而不是在答案中(其中一些真的很奇怪!)

您需要转到控制面板证书管理器Windows凭据并更新git: http://your_repository_address的密码

基本上我的证书过期了,我面临着这个问题。

下面两个命令帮助了我:

git config --global --unset credential.helper
git config credential.helper store

当你下次尝试推送时,它会要求你提供凭证。

有关用户名和密码的安全和不安全存储的详细信息,请遵循以下指南:

  • < p > # 0

  • < p > # 0

在Windows上,尝试以下步骤编辑删除保存的凭据:

  1. 点击# 0
  2. 输入:证书管理器(在Windows 10上,这是在“开始设置”下面。然后搜索“证书管理器”;)
  3. 查看Windows凭证管理器快捷方式,双击它打开应用程序。
  4. 打开应用程序后,单击Windows凭据选项卡。
  5. 找到要删除/更新的凭据。它们将以“;git:"并且可能以"ada:"
  6. 单击凭据条目。它将打开条目的详细信息视图。
  7. 单击“编辑”或“删除”,并确认。
  8. 然后冲洗,必要时重复这一步骤。

Enter image description here

确保您的SSH密钥已添加到当前SSH会话。

  1. cat ~/.ssh/id_rsa.pub的输出复制到您的GitHub设置下的SSH和GPG密钥。

  2. ssh-add ~/.ssh/id_rsa.pub更新当前SSH会话。

我使用Windows PowerShell,安装了OpenSSH

如果你在你的GitHub帐户上启用了双因素身份验证,然后登录到你的GitHub帐户并转到

新的个人访问令牌

若要生成新的访问令牌,请复制该令牌,并将其作为密码粘贴到终端中进行身份验证。

Android工作室 金丝雀版本3.1+中,如果你正在使用Android Studio Git工具,那么你可以使用以下方法:

  • 点击Android Studio
  • 点击首选项…
  • 版本控制GitHub
  • 这里将身份验证类型改为密码
  • 此步骤将要求您输入登录名和密码。登录时输入GitHub用户名,密码为GitHub密码。
  • 点击测试按钮。

如果连接成功,那么就完成了,可以使用Android Studio GitHub GUI客户端。

如果您在Windows上,并试图推送到具有域用户作为存储库用户(TFS)的Windows服务器,请尝试使用Internet Explorer进入TFS URL(即http:\\tfs)。输入域帐户凭据并显示页面。

谨慎:只使用<强> Internet Explorer < / >强!其他浏览器不会更改您的系统凭据。

现在转到Git Bash,更改存储库的远程用户,如下所示:

git config user.name "domainName\userName"

和完成。现在你可以推了!

如果您使用的是SSH,并克隆了HTTPS,这将不起作用。

用SSH进行克隆,然后按预期进行推拉!

我得到了同样的错误。我尝试了本页中提到的所有解决方案,但它们都不起作用。最后,我找到了解决方案。

如果您的系统密码最近随时更改,就会出现这种错误。它将尝试从旧密码验证。# 0

  1. 进入控制面板
  2. 点击用户帐户
  3. 在# 0
  4. 转到管理Windows凭证
  5. 转到通用凭证
  6. 展开Git服务器选项卡
  7. 点击从金库取出
  • 此外,您可以单击编辑并直接更改存储在这里的密码。

如果这是有帮助的,因为这个问题现在是git的http身份验证问题的一个热门:Windows凭据管理器已经正确地存储了我的密码,并且由于我使用的是git LFS I 配置一个http URL而不是通常的ssh://

我的问题是,我的公司密码策略强制更改帐户密码,但我从未更新我存储的凭据(因为我总是使用ssh密钥)。

直接在Wincred GUI中更新密码就可以了:只需查找git:https://<your-url>条目。

如果您更改了git服务帐户(git)的登录名或密码,就会发生这种情况。您也需要在Windows凭证管理器中更改它。在Windows搜索菜单中输入“凭据管理器”打开它。

Windows凭据管理器->Windows凭据和通用凭据下编辑你的git密码。

在从Gitlab登录之前强制执行“双因素认证”后,我们就遇到了这种情况。我们必须将文本粘贴到id_rsa中。pub到Gitlab,然后使用终端在VS代码中重新引入存储库。

在我的情况下,我最近更改了我的windows密码,我有SSH密钥配置git相关的动作(拉,推,获取等),在我遇到“致命:认证失败”错误后,我更新了我的密码在windows凭据管理器(控制面板\用户帐户\凭据管理器)的所有项目以git开始:…他又试了一次,这次成功了!

我添加到Bitbucket与Git链接,必须删除存储的密钥,因为这导致了致命的错误。

为了解决这个问题,我打开命令提示符并运行

 rundll32.exe keymgr.dll, KRShowKeyMgr

我删除了负责登录的密钥,下次我将文件推到repo时,系统会提示我输入凭据,并输入正确的凭据,结果成功推入。

我尝试了令牌验证方法,让它工作~3次,浪费了大约2个小时的时间。出于某种原因,它在我们公司不太适用。

我的解决方案是将身份验证方法从HTTPS更改为SSH。这是一个Github指南(https://help.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent)。

创建SSH密钥后,请记住更改SSH地址来源:

git remote add origin git@github.com:user/repo.git
这种方式,我解决了我的访问拒绝问题在GIT GUI和GIT bash。# 0 < / p >

这个SSH密钥被复制粘贴到GitHub访问令牌中

对我来说一切都很好,我也尝试了Windows凭据管理器,但问题也没有解决。然后突然,我从防火墙弹出,这是幕后的罪魁祸首。在我手动点击允许后,我可以获取或推送到GitHub

在你尝试以上所有方法之前,再试一次git push,是的,它对我有用。

当我更新我的电脑密码时,得到上述错误信息。使用以下步骤重置我的git凭据

进入控制面板>用户帐户及gt;证书经理;Windows凭据。您将在列表中看到Git凭据(例如Git:https://).)点击它,更新密码,然后在git bash中执行git pull/push命令,它就不会抛出任何错误消息了。

同样的错误(Windows, Git Bash命令行)。使用https应该提示登录凭证,但错误:

$ git pull origin masterfatal: Authentication failed for 'https://github.com/frmbelz/my_git_project.git'
$ git config -l...credential.helper=manager...
$ git config --global --unset credential.helper$ git config --system --unset credential.helper

git pull现在提示用户名/密码提示。

我刚刚为我的Github帐户启用了双因素身份验证,所以我禁用了双因素身份验证,我可以用我的UID和PWD登录

使用个人访问令牌是绕过这个问题的一种方法。我没有启用双因素身份验证,但每当我登录到一台新PC时,我都会收到电子邮件验证码来验证PC。

<强>解决方案:你可以在浏览器上登录到GitHub并验证你的身份,这将让GitHub知道信任这台PC。然后,使用bash登录,这一次你的登录应该能正常工作,因为现在你被列入白名单了


请注意:如果你有任何现有的GitHub帐户,想要切换,然后在Credentials Manager > Windows Credentials (Generic Credentials Section)中删除它。这样做将允许您在进行另一个git操作时登录。

我得到以下错误时,试图推动到github远程

git@github.com: Permission denied (publickey).fatal: Could not read from remote repository.
Please make sure you have the correct access rightsand the repository exists.

<强>解决方案SSH密钥在github帐户

上丢失
  1. ~/.ssh目录复制本地公共ssh密钥

  2. 粘贴到Github > Settings > SSH and GPG Keys > New SSH Key

  3. <李> < p >尝试# 0这应该输出

    < p >嗨xxxxx !您已成功验证,但GitHub不提供shell访问。< / p >

我昨天从第1条的第0条开始遇到这个问题。

我没有对我的GitHub凭证进行任何更改,也没有在项目中更改任何内容,但我运行任何git命令来与我的远程分支进行通信,例如:

git pull origin dev

我得到的错误如下:

remote: Repository not found。fatal: Authentication failed for 'https://github.com/MyUsername/my-project.git/'

# 0:

我尝试重新克隆项目,然后运行git pull命令,但它不起作用。

git clone https://my-git-url

我尝试使用以下命令再次设置我的凭据,但仍然没有运气:

git config --global user.email "email@example.com"git config --global user.name "John King"

我尝试删除远程存储库,并使用以下命令重新添加它,但仍然没有运气:

git remote remove origingit remote add origin https://my-git-url

最后,# 1。我最大的猜测是,这是几个小时前的最后一次更新中的第2个错误(请参阅截图,它显示发布是在我遇到这个问题的同一天完成的)。我的意思是我设置Visual Studio Code使用snap,所以它可能已经在后台更新了几个小时。

enter image description here

希望他们能解决这个问题,git远程操作将再次恢复正常。

启用凭据助手解决了我的问题。

我的解决方案是:

  1. 访问C:\Users\USERNAME\AppData\Local\Atlassian\SourceTree
  2. 找到文件passwd
  3. 右键单击该文件开放与 Notepad
  4. 你会看到一个用户名和密码列表,如下所示:
< p > username@dev.azure.comAQAAANCMnd8BFdERjHoAwE / Cl + sBAAAAMUOX3Q56PEuXEBSDFAFAASEH…< / p >
  1. 找到您输入错误的用户名和密码,并删除
  2. 保存文件,然后关闭它
  3. SourceTree将在下次推送或获取时再次询问您的用户名和密码

当然,2FA需要token而不是password进行认证。

以防在Windows系统中再次遇到同样的问题

  1. 卸载Git
  2. 下载及安装最新的“Git for Windows”

这样你的问题就解决了。

快速 GUI的做法是:

  1. 首先通过创建应用程序访问令牌生成一个访问令牌。
  2. 然后进入sourceTree的设置(放在Source树的关闭按钮下)
  3. 将出现一个名为“存储库设置”的提示。
  4. 在这里用https://USER_NAME:ACCESS_TOKEN@bitbucket.org/REPO_NAME/PROJECT_NAME.git添加/编辑存储库路径

或为github帐户

# 0

这里要提到的只有改变添加,由上述共享的创建应用程序访问令牌链接到现有的路径 url生成的额外的accessToken

我也有同样的问题。重新启动我的系统后,它工作了。