git clone:<url>的身份验证失败

时间:2018-07-19 13:33:55

标签: windows git tfs credentials

尝试访问私人公司tfs。 他们通过授予Windows用户(domain \ login)适当的权限来授予我访问权限。

我可以访问tfs的Web界面,浏览存储库和其他内容。

但是当我尝试运行

 git clone https://tfs.somehostname.com/tfs/somefolder/_git/therepository

失败
Cloning into 'therepository'...

fatal: Authentication failed for 'https://tfs.somehostname.com/tfs/somefolder/_git/therepository/'

在没有公司网络内容的情况下尝试使用家用PC-同样的错误。

在PowerShell,Git Bash,通过VisualStudio克隆中尝试-相同的错误。

SSH已关闭(请求超时)。

Web和Git都要求一次凭证(尝试在Credentials Manager中删除-再次询问,提交网络正常后,git失败)

企业助手试图提供帮助,但他所提供的只是tfs日志。 他说,我的用户名没有请求(通过将我的尝试时间戳与日志同步来跟踪)。

2018-07-19 07:04:00 SOMEIP GET /tfs/SOMEFOLDER/_git/REPOSITORY/info/refs service=git-upload-pack 443 - ANOTHERIP git/2.12.2+(Microsoft+Windows+NT+6.3.9600.0;+Win32NT+x64)+CLR/4.0.30319+VS15/15.0.0 - 401 2 5 62
2018-07-19 07:23:00 SOMEIP GET /tfs/SOMEFOLDER/_git/REPOSITORY/info/refs service=git-upload-pack 443 - ANOTHERIP git/2.18.0.windows.1 - 401 2 5 62
2018-07-19 07:23:00 SOMEIP GET /tfs/SOMEFOLDER/_git/REPOSITORY/info/refs service=git-upload-pack 443 - ANOTHERIP git/2.18.0.windows.1 - 401 1 3221225581 187

而其他人包括它

2018-07-19 05:44:27 SOMEIP GET /tfs/SOMEFOLDER/_git/REPOSITORY/info/refs service=git-upload-pack 443 DOMAIN\LOGIN ANOTHERIP git/2.12.2+(Microsoft+Windows+NT+6.1.7601+Service+Pack+1;+Win32NT+x64)+CLR/4.0.30319+VS15/15.0.0 - 200 0 0 265

15 个答案:

答案 0 :(得分:27)

转到> Control Panel\User Accounts\Credential Manager> Manage Windows Credentials 并删除所有涉及 Git 的通用凭据。这样,您可以重置所有凭据;此后,克隆后,系统会重新安全提示您输入用户名和密码,而不是“身份验证”错误。

希望有帮助。

答案 1 :(得分:5)

添加usernamepassword对我有用:例如

https://myUserName:myPassWord@myGitRepositoryAddress/myAuthentificationName/myRepository.git

答案 2 :(得分:1)

罪魁祸首是俄罗斯帐户密码。

意外地设置了它(错误的键盘布局)。 一切都正常,所以不必费心更改它。

出于绝望,现在对其进行了更改,并且可以正常工作。

如果有人在查找该线程而不是您的解决方案-在我所描述的问题和步骤下查看注释,它们可能对您有用。

答案 3 :(得分:1)

正如其他答案所建议的那样,在Manage Windows Credentials中编辑/删除凭据可以正常工作。但是,每次密码更改或凭据对某些工作不起作用时,都需要执行此操作。使用ssh key对我来说非常有用,在我完成创建ssh-key并将它们添加到服务器存储库(github / bitbucket / gitlab)之后,我就不必再为这些烦恼了。

生成新的SSH密钥

  1. 打开Git Bash。

  2. 粘贴以下文本,替换为您的仓库的电子邮件地址。 $ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

  3. 当系统提示您“输入要保存密钥的文件”时,请按Enter。这将接受默认文件位置。

  4. 然后将要求您输入安全密码。您可以输入密码,然后按Enter键,然后再次输入密码。

或者,按Enter键两次以输入空密码。

  1. 将此内容复制到剪贴板上:

    剪辑<〜/ .ssh / id_rsa.pub

然后将此密钥添加到您的仓库的配置文件中。例如,在 github-> setting-> SSH密钥->上粘贴您复制广告命中的密钥,添加

参考:https://help.github.com/en/enterprise/2.15/user/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent#generating-a-new-ssh-key

一劳永逸!

答案 4 :(得分:1)

在尝试了该线程和其他线程上的几乎所有内容之后,继续使用Google,最后对我有用的唯一方法是通过命令行以我的AD用户身份启动Visual Studio:

cd C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE
runas /netonly /user:<comp\name.surname> devenv.exe

原始问题: [1]:https://developercommunity.visualstudio.com/content/problem/304224/git-failed-with-a-fatal-errorauthentication-failed.html

我的情况是我正在使用个人计算机连接到使用AD授权的公司内部/本地devops服务器(不是基于云的服务器)。我对TFS没问题,但是git不能使克隆正常工作(Git失败并出现致命错误。[url]身份验证失败),直到我这样做为止。

答案 5 :(得分:0)

万一有人遇到Azure DevOps的问题,那么修复很容易,只需将Git凭据添加到存储库即可。

enter image description here

答案 6 :(得分:0)

在通过Bash / VS代码克隆存储库时出现“致命:身份验证失败”时,我遇到了同样的问题。我根据以下文章使用SSH密钥身份验证来连接我的存储库:[https://docs.microsoft.com/en-us/azure/devops/repos/git/use-ssh-keys-to-authenticate?view=azure-devops&tabs=current-page][1] 使用bash命令后,我没有任何错误!

答案 7 :(得分:0)

我没有忘记密码,而是将密码遗忘并提示用户输入密码,但前提是我在用户名之前加了域名:

git clone https://some-dom-name\firstname.lastname@tfs.somedomain.com/tfs/...

答案 8 :(得分:0)

在我的情况下,错误是某些旧的用户名和密码存储在缓存中。

所以我通过转到sourceTree删除了它,并删除了现有帐户。

现在要创建新克隆,然后它将要求您提供存储库的密码。 enter image description here

答案 9 :(得分:0)

  1. 转到“控制面板” \“所有控制面板项目” \“凭据管理器”,然后选择“通用凭据”。
  2. 删除所有带有您公司域名的凭据。
  3. 再次从git bash终端复制Git克隆存储库,它将要求输入密码和用户名。再次插入,一切就绪!

答案 10 :(得分:0)

我在Windows 10机器上也遇到了同样的问题,我尝试了许多解决方案,但是直到安装了最新的git版本后才起作用。 https://git-scm.com/downloads

答案 11 :(得分:0)

前往:

<块引用>

控制面板 -> 用户帐户 -> 凭据管理器 -> Windows 凭据 -> 通用凭据 >> 删除为特定 URL 保存的旧凭据

然后,当您刚刚克隆存储库时,它会提示输入凭据。

答案 12 :(得分:0)

这里有一个替代答案。打开 git bash 转到路径 git/mingw64/libexec/git-core 并运行以下命令:

./git-credential-manager clear

下次执行克隆时,将打开一个对话框并显示您需要哪个凭据管理器。我选择了wincred(不知道是不是最好的选择)。选中该框,这样它就不会再问了。另一个类似的对话框将再次打开。

顺便说一句,最好使用 ssh 密钥进行身份验证。不要使用 https 结帐。如果您每次与服务器交互时都必须输入密码,那么您将减少输入次数,并减少合并代码的频率。更多的冲突会发生。

答案 13 :(得分:0)

尽管通过 Sorucetree 和 gitbash 在提示窗口中输入凭据登录失败,但 GitHub 桌面应用程序可以轻松运行

GitHub Desktop

答案 14 :(得分:-1)

当我尝试在全新计算机上克隆存储库时,我遇到了完全相同的错误。我使用git bash作为我的git客户端。当我运行Git的命令来克隆存储库时,不是 not 提示我输入用于身份验证的用户ID和密码。这是一台崭新的计算机,Windows凭据管理器没有缓存单个凭据。

作为最后的选择,我在凭据管理器中手动添加了凭据。

转到> Control Panel\User Accounts\Credential Manager> Windows Credentials

点击Add a Windows credential链接,然后提供如下表所示的详细信息,您就可以完成:

enter image description here

我的详细信息如下:

Internet or network address: 192.168.1.100
User Name: MyCompanysDomainName\MyUserName
Password: MyPassword

下一次,只要您运行任何针对在以上地址(192.168.1.100)上设置的存储库的git命令,便会使用此手动缓存的凭据。

在这里分享我的经验,以防将来对某人有帮助。