Git错误致命:认证失败


101

我正在尝试使用git将我的存储库推送到Visual Studio Team Services项目,但出现错误:

fatal: Authentication failed for (url of team project

我正在使用cmds:

git remote add origin
     https://XXXXXXX.visualstudio.com/DefaultCollection/_git/project

git push -u origin -–all

对此有什么解决的主意吗?

谢谢!


1
您如何进行身份验证?个人访问令牌?备用访问凭证?
丹尼尔·曼

Answers:


196

我最近遇到了一个相同的问题(Visual Studio 2017和Windows 10),并使用以下方法解决了它:

控制面板->凭据管理器->管理Windows凭据->选择git存储库的条目,然后编辑用户和密码。

做完了


1
当我的个人访问令牌过期时,我使用了此方法。转到<< URL >> / _ usersSettings / tokens创建一个新密码,然后将其设置为Credential Manager中的密码。
甚至Mien

34

如果您希望使用GIT CLI并且不与Visual Studio中的GIT包装器中的版本进行交互,则需要启用备用身份验证凭据

怎么样?

Open your account (VS Online account) 
-> click on your name on the top right 
-> My Profile
-> Credentials.

并进行设置。


在此处输入图片说明

在此处输入图片说明


4
安全性现在是菜单中的单独项。如果单击个人资料,它将转到一个非常不同的页面。
卢克斯

2
不同版本之间可能会有所不同。这就是为什么我添加了屏幕截图的原因
CodeWizard

1
我不必这样做。对Git Bash使用PAT似乎效果很好。
乔什·古斯特

1
请使用PAT而不是备用凭据。
爱德华·汤姆森,

1
不建议启用备用凭据:域凭据以明文形式传输,并且可能最终出现在应用层IIS日志中
Giulio Vian

27

我也遇到过同样的问题。错误输出窗口如下所示: 身份验证失败图片

按照以下步骤解决问题:

  1. 转到控制面板->凭据管理器-> Windows凭据
  2. 在“通用凭据”下,选择git&update密码的条目。

    解决方案窗口

  3. 密码应与Windows(系统)登录密码相同。


17

今天最好的选择是安装https://github.com/Microsoft/Git-Credential-Manager-for-Windows,该Windows支持VSO,GitHub,并且每个月都在改进。


2
@dotnetdev请接受此答案,因为这是解决此问题的推荐方法。
迪兰

1
github.com/Microsoft/Git-Credential-Manager-for-Mac-and-Linux上,也可以在Mac和Linux上使用 -对我来说非常理想,而不必添加安全性较低的“替代凭据”。
布雷诺(Breeno)'17

1
这确实是Microsoft提供的“事实”解决方案。在此确实起作用的其他解决方案应视为调整项。
斯蒂芬

11

使用VSTS的网址是,当您从vsts复制git clone网址时,总是

https:// 组织名称 @ dev.azure.com / org / project / _git / repo

更换ORGNAME @其他用户名,你会在创建VSTS - >配置文件- >安全。

最终的git网址-

https:// 备用用户名 @ dev.azure.com / org / project / _git / repo


7

我遇到了同样的问题,我尝试使用Windows凭据管理器更新密码,但仍无法解决问题

控制面板->凭据管理器->管理Windows凭据->选择git存储库的条目,然后编辑用户和密码。

然后,我删除了凭证管理器中所有与git相关的条目,然后尝试使用Visual Studio使用Git,这一次它提示您输入新凭证


5

删除“ .git / config”,然后重试。注意,这也可能会重置一些git设置!

我已经多次使用正确的凭据尝试了备用凭据和个人访问令牌,并且不断告诉我“致命:身份验证失败”。

最后,我发现Repo的根目录下有一个名为“ .git / config”的文件。我删除了此文件,然后再次输入我的凭据,它起作用了。


3

尝试将更改从VS2017推送到VSTS Git存储库时,我突然开始收到此错误。该功能在前一天有效。

我检查了我的git.log文件,发现了另一个异常:

19:43:57.116665 ... zureAuthority.cs:184跟踪:[ValidateCredentials]服务器返回:'无法连接到远程服务器。

我从Gits Credential Manager存储库下载了最新的Git CredentialManager源,并对其进行了调试。

一旦通过身份验证,就会发生以下异常:

无法建立连接,因为目标计算机主动拒绝它127.0.0.1:8888

然后,我意识到根据文章Capture-traffic-from-.net-services-with-fiddler的文章,我最近设置了Fiddler以充当所有服务的代理

运行Fiddler之后,我就可以成功连接。


3

我的解决方案有点不同,而且更快:)

  1. 转到Windows凭据(开始-> Windows凭据)并删除存储库的凭据(它们以git:xxx开头)
  2. 转到VSCode并在终端中输入:

    配置credential.helper wincred

  3. 转到Visual Studio(无VSCode)并进行git pull。弹出窗口将显示询问凭据。输入您的回购凭证

  4. 转到VSCode并进行git pull。凭证是从Wincred商店自动获取的

凭据是自动创建的,并存储在wincredentials中,因此下次不会再要求您提供凭据。(如果您使用的是由DevOps托管的git repo,还将从visualstudio.com提供个人访问令牌)。


开始-> Windows凭据就像一个超级按钮!谢谢!
Highriser

1

我尝试了很多选择,但是对我有用的是:

  1. 发布部分 下载Git密码管理器

  2. 尝试做一个简单的操作git fetch,它将自动带出该窗口(例如,替代默认窗口之一),并要求输入用户名和密码,但比标准窗口更优雅。

正确输入凭据后,它可以工作,尽管之前我遇到了错误。

PS:如果您收到“错误的凭据”类错误,请始终检查存储库用户名密码是否正确。如果您犹豫不决,只需重置密码,然后尝试在Git密码管理器窗口中使用相同的密码即可。


1

我遇到了这个问题,微软的技术人员为我解决了这个问题:

  • 关闭Visual Studio的所有实例。
  • 打开任务管理器,并检查是否正在运行任何TFS服务。选择它们中的每一个,然后单击End Process Tree。
  • 浏览到下面的文件夹,并删除%LocalAppData%\ Microsoft \ Team Foundation {version} \ Cache中的所有内容和文件夹
  • 转到控制面板->用户帐户->管理您的凭据-> Windows凭据,选择VSTS URL将其删除
  • 然后转到“ C:\ Users \ USER NAME \ AppData \ Local \ GitCredentialManager \ tenant.cache”并将其删除
  • 还要转到“ C:\ Users \ USER NAME \ AppData \ Local.IdentityService”并将其删除

1

对于不能使用Microsoft Credential Manager的Linux用户。这是除了使用ssh之外我发现的唯一解决方案。您需要在存储库视图中生成凭证(请参见下图) 获取git凭证

结果是: 获取Git凭证结果

复制密码!Azure devops不存储它,您将无法再次看到它!

注意:自2020年起,备用凭据已被禁用,请检查Microsoft博客。


0

我所需要的只是正确的凭据。在部署到Web应用程序时,我必须转到部署中心,部署凭据。然后使用“应用程序凭据”或创建“用户凭据”。此后,删除本地计算机上的缓存凭据(窗口:控制面板\用户帐户\凭据管理器)。再次运行“ git push webapp master:master”,输入任意一个部署凭据。这对我有用。


0

如果您使用的不是Windows,而老板又强迫您使用azure devops,并且您不想使用SSH,并且想使用简单的旧方法,请执行以下操作。

您必须启用“备用凭据”(我知道这很烦人),或者您需要创建访问令牌。在这种情况下,创建访问令牌更像是临时随机密码。如果您使用Windows工具,则为您完成。

无论如何,请转到Security右上角的个人资料上下文菜单。

安全设定

然后,如果具有管理员权限的老板/经理/花花公子对您有利,则启用“备用凭据”。否则,请接受您的命运并生成一个“个人访问令牌”。

安全设定


0

2至5分钟即可设置!

  • 创建您的SSH密钥(〜/ .ssh /)

ssh-keygen -C "jamal@fabrikam.com"

  • 将公钥添加到Azure DevOps Services / TFS
  • 使用SSH克隆Git存储库

资源


0

使用Git认证和蔚蓝DEVOPS服务器挣扎,并试图其他答案后,这个技巧在这里为我工作。

使用Visual Studio?Team Explorer为您处理Azure Repos的身份验证。

一旦使用Team Explorer连接到仓库,我就可以使用命令行执行git命令。


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.