git 克隆:<URL> 的身份验证失败
git clone: Authentication failed for <URL>
正在尝试访问私人企业 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/'
尝试在没有公司网络的情况下使用家用电脑 - 同样的错误。
在 PowerShell 中尝试过,GitBash,通过 VisualStudio 克隆 - 同样的错误。
SSH 已关闭(请求超时)。
Web 和 Git 都要求提供凭据一次(尝试在凭据管理器中删除 - 再次询问,提交网站后没问题,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
罪魁祸首是俄罗斯账户密码。
不小心设置了它(错误的键盘布局)。
一切正常,所以没有费心去改变它。
出于绝望,现在改变了它,它起作用了。
如果有人查找了此主题,但发现它不是适合您的解决方案 - 请查看我在问题中描述的问题和步骤下的评论,它们可能对您有用。
我在我的开发机器上遇到了同样的错误。我试图克隆一个存储库。我的机器有一个新安装的 Windows 服务器操作系统。我使用 Git bash 作为我的 Git 客户端。当我 运行 Git 的命令克隆存储库时,它 而不是 提示我输入将用于身份验证的用户 ID 和密码。这是一台新 PC,因此 Windows 凭据管理器未缓存任何凭据。
作为最后的手段,我按照以下步骤在凭据管理器中手动添加了我的凭据:
- 按Window+R打开运行提示.
- 键入 Control 并按 OK
- 在控制面板上单击用户帐户 window。
- 在用户帐户上单击凭据管理器 window。
- 在 Credential Manager window.
上单击 Windows Credentials
现在,在Windows凭据部分单击添加Windows凭据,如下所示:
现在,如下表所示输入详细信息,然后单击 确定:
我把细节写在下面:
Internet or network address: <gitRepoServerNameOrIPAddress>
User Name: <DomainName\MyUserName>
Password: <MyPassword>
下次当您 运行 任何 Git 命令针对在上述地址上设置的存储库时,将使用此手动缓存的凭据。
注:
- 关闭并重新启动任何打开的 Git bash、Powershell 或命令 shell 以使凭据缓存生效。
- 从现在开始,只要您的域帐户密码发生更改,您也必须在此屏幕上进行更新。在企业环境中,由于密码轮换政策,这种情况经常发生。
添加 username
和 password
对我有用:例如
https://myUserName:myPassWord@myGitRepositoryAddress/myAuthentificationName/myRepository.git
如果有人遇到 Azure DevOps 的这个问题,修复非常简单,只需将 Git 凭据添加到存储库。
使用 "fatal:Authentication failed" 通过 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 命令后我没有收到任何错误!
我没有转义我的密码,而是将其遗漏并提示输入它,但只有当我在用户名之前包含域名时:
git clone https://some-dom-name\firstname.lastname@tfs.somedomain.com/tfs/...
前往 > Control Panel\User Accounts\Credential Manager
> Manage Windows Credentials
并删除所有涉及 Git 的通用凭据。 (这样你就可以重置所有凭据)
在此之后,当您克隆时,您将 newly 并且 securely 询问您的 Git 用户名和密码身份验证错误。
希望对您有所帮助。
正如其他答案所暗示的那样,Manage Windows Credentials
中的 editing/removing 凭据可以正常工作。但是,每次密码更改或凭据对某些工作不起作用时,您都需要执行此操作。使用 ssh key
对我来说非常有用,一旦我完成创建 ssh-key
并将它们添加到服务器存储库 (github/bitbucket/gitlab),我就不必再为这些烦恼了。
正在生成新的 ssh-key
打开GitBash.
粘贴下面的文本,替换为您的存储库的电子邮件地址。
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
当系统提示您“输入要保存密钥的文件”时,请按 Enter。这接受默认文件位置。
然后系统会要求您输入安全密码。您可以输入密码,按回车键并再次输入密码。
或者,输入两次空密码。
将此复制到剪贴板:
剪辑 < ~/.ssh/id_rsa.pub
然后将此密钥添加到您的存储库配置文件中。例如,在 github->setting->SSH keys -> 粘贴您复制的密钥并点击 add
一劳永逸!
在我的例子中,错误是一些旧的用户名和密码存储在缓存中。
所以我通过转到 sourceTree 删除了它并删除了现有帐户。
现在对于新的克隆,它会要求您输入存储库的密码。
- 转到控制 Panel\All 控制面板 Items\Credential 管理器和 select 通用凭据。
- 删除所有包含您公司域名的凭据。
- Git 再次从 git bash 终端克隆存储库,它会要求输入密码和用户名。再次插入,一切就绪!
我的 windows 10 机器也遇到了同样的问题,我尝试了很多解决方案,但直到我安装了最新的 git 版本才奏效。 https://git-scm.com/downloads.
在尝试了此线程和其他线程上的几乎所有内容后,继续 Google,最后对我有用的唯一方法是通过命令行以我的 AD 用户身份启动 Visual Studio :
cd C:\Program Files (x86)\Microsoft Visual Studio19\Community\Common7\IDE
runas /netonly /user:<comp\name.surname> devenv.exe
我的情况是我在个人计算机上连接到使用 AD 授权的公司 internal/local devops 服务器(不是基于云的)。我对 TFS 没有任何问题,但是 git 无法让克隆工作(Git 因致命错误而失败。[url] 的身份验证失败),直到我这样做。
转到:
Control Panel -> User Accounts -> Credential Manager -> Windows Credentials -> Generic Credentials >> Remove old credentials which were saved for the specific url
然后当您新克隆存储库时,它会提示输入凭据。
这里有一个替代答案。打开 git bash 转到路径 git/mingw64/libexec/git-core
和 运行 以下命令:
./git-credential-manager clear
下次执行克隆时,将打开一个对话框,其中包含您想要的凭据管理器。我选择了 wincred
(不知道这是否是最佳选择)。选中此框,这样它就不会再问了。另一个类似的对话框将再次打开。
顺便说一下,最好使用 ssh 密钥进行身份验证。不要使用 https 结帐。如果每次与服务器交互时都必须输入密码,那么您会做得更少,合并代码的频率也会降低。将会发生更多冲突。
尽管通过 Sourcetree 和 git bash 在提示符中输入凭据登录失败 window,GitHub 桌面应用程序工作顺利
要克隆私有存储库,只需放置 password
和 username
是不够的,因为终端不会告诉您,但您必须使用 [= 复制 personal_access_token
33=] 帐户并将其放在密码的位置。
$ git clone https://github.com/username/repo.git
Username: your_username
Password: your_token
此外,您可以通过以下步骤轻松访问您的令牌:-
现在检查 repo 列,然后单击 Generate token
现在在终端要求输入密码时复制并粘贴它。
NOTE: - Treat your tokens like passwords and keep them secret
如果不询问凭据,那么最简单的解决方案是使用凭据进行克隆。
选项 B 适用于密码包含 URL 以奇怪方式处理的任何特殊字符的情况。此选项询问密码。
我刚遇到这个问题。最简单的方法是 select 克隆到 Visual Studio。 Visual Studio 然后提示您输入凭据。输入凭据后,设置路径。然后你的存储库被克隆。
如果您使用的是 Gitlab,出于某种原因,git 使用 http 进行克隆是行不通的。 Git 使用 ssh 克隆是唯一的选择。
git clone git@gitlab.example.com:demo.git
1- 清除 windows 中的所有凭据,如上面的答案所述
2- 确保你有最新的 git,如果你的 git 没有更新到最新版本,你也会得到这个错误。
3- 完成上述步骤后。只需简单地克隆,它就会要求提供凭据并且会起作用
对于新来的人,
赞成的答案不再是答案,因为
remote: Support for password authentication was removed on August 13,
2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/
for more information.
无需重复访问令牌回复,去关注他们。
正在尝试访问私人企业 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/'
尝试在没有公司网络的情况下使用家用电脑 - 同样的错误。
在 PowerShell 中尝试过,GitBash,通过 VisualStudio 克隆 - 同样的错误。
SSH 已关闭(请求超时)。
Web 和 Git 都要求提供凭据一次(尝试在凭据管理器中删除 - 再次询问,提交网站后没问题,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
罪魁祸首是俄罗斯账户密码。
不小心设置了它(错误的键盘布局)。 一切正常,所以没有费心去改变它。
出于绝望,现在改变了它,它起作用了。
如果有人查找了此主题,但发现它不是适合您的解决方案 - 请查看我在问题中描述的问题和步骤下的评论,它们可能对您有用。
我在我的开发机器上遇到了同样的错误。我试图克隆一个存储库。我的机器有一个新安装的 Windows 服务器操作系统。我使用 Git bash 作为我的 Git 客户端。当我 运行 Git 的命令克隆存储库时,它 而不是 提示我输入将用于身份验证的用户 ID 和密码。这是一台新 PC,因此 Windows 凭据管理器未缓存任何凭据。
作为最后的手段,我按照以下步骤在凭据管理器中手动添加了我的凭据:
- 按Window+R打开运行提示.
- 键入 Control 并按 OK
- 在控制面板上单击用户帐户 window。
- 在用户帐户上单击凭据管理器 window。
- 在 Credential Manager window. 上单击 Windows Credentials
现在,在Windows凭据部分单击添加Windows凭据,如下所示:
现在,如下表所示输入详细信息,然后单击 确定:
我把细节写在下面:
Internet or network address: <gitRepoServerNameOrIPAddress>
User Name: <DomainName\MyUserName>
Password: <MyPassword>
下次当您 运行 任何 Git 命令针对在上述地址上设置的存储库时,将使用此手动缓存的凭据。
注:
- 关闭并重新启动任何打开的 Git bash、Powershell 或命令 shell 以使凭据缓存生效。
- 从现在开始,只要您的域帐户密码发生更改,您也必须在此屏幕上进行更新。在企业环境中,由于密码轮换政策,这种情况经常发生。
添加 username
和 password
对我有用:例如
https://myUserName:myPassWord@myGitRepositoryAddress/myAuthentificationName/myRepository.git
如果有人遇到 Azure DevOps 的这个问题,修复非常简单,只需将 Git 凭据添加到存储库。
使用 "fatal:Authentication failed" 通过 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 命令后我没有收到任何错误!
我没有转义我的密码,而是将其遗漏并提示输入它,但只有当我在用户名之前包含域名时:
git clone https://some-dom-name\firstname.lastname@tfs.somedomain.com/tfs/...
前往 > Control Panel\User Accounts\Credential Manager
> Manage Windows Credentials
并删除所有涉及 Git 的通用凭据。 (这样你就可以重置所有凭据)
在此之后,当您克隆时,您将 newly 并且 securely 询问您的 Git 用户名和密码身份验证错误。
希望对您有所帮助。
正如其他答案所暗示的那样,Manage Windows Credentials
中的 editing/removing 凭据可以正常工作。但是,每次密码更改或凭据对某些工作不起作用时,您都需要执行此操作。使用 ssh key
对我来说非常有用,一旦我完成创建 ssh-key
并将它们添加到服务器存储库 (github/bitbucket/gitlab),我就不必再为这些烦恼了。
正在生成新的 ssh-key
打开GitBash.
粘贴下面的文本,替换为您的存储库的电子邮件地址。
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
当系统提示您“输入要保存密钥的文件”时,请按 Enter。这接受默认文件位置。
然后系统会要求您输入安全密码。您可以输入密码,按回车键并再次输入密码。
或者,输入两次空密码。
将此复制到剪贴板:
剪辑 < ~/.ssh/id_rsa.pub
然后将此密钥添加到您的存储库配置文件中。例如,在 github->setting->SSH keys -> 粘贴您复制的密钥并点击 add
一劳永逸!
在我的例子中,错误是一些旧的用户名和密码存储在缓存中。
所以我通过转到 sourceTree 删除了它并删除了现有帐户。
现在对于新的克隆,它会要求您输入存储库的密码。
- 转到控制 Panel\All 控制面板 Items\Credential 管理器和 select 通用凭据。
- 删除所有包含您公司域名的凭据。
- Git 再次从 git bash 终端克隆存储库,它会要求输入密码和用户名。再次插入,一切就绪!
我的 windows 10 机器也遇到了同样的问题,我尝试了很多解决方案,但直到我安装了最新的 git 版本才奏效。 https://git-scm.com/downloads.
在尝试了此线程和其他线程上的几乎所有内容后,继续 Google,最后对我有用的唯一方法是通过命令行以我的 AD 用户身份启动 Visual Studio :
cd C:\Program Files (x86)\Microsoft Visual Studio19\Community\Common7\IDE
runas /netonly /user:<comp\name.surname> devenv.exe
我的情况是我在个人计算机上连接到使用 AD 授权的公司 internal/local devops 服务器(不是基于云的)。我对 TFS 没有任何问题,但是 git 无法让克隆工作(Git 因致命错误而失败。[url] 的身份验证失败),直到我这样做。
转到:
Control Panel -> User Accounts -> Credential Manager -> Windows Credentials -> Generic Credentials >> Remove old credentials which were saved for the specific url
然后当您新克隆存储库时,它会提示输入凭据。
这里有一个替代答案。打开 git bash 转到路径 git/mingw64/libexec/git-core
和 运行 以下命令:
./git-credential-manager clear
下次执行克隆时,将打开一个对话框,其中包含您想要的凭据管理器。我选择了 wincred
(不知道这是否是最佳选择)。选中此框,这样它就不会再问了。另一个类似的对话框将再次打开。
顺便说一下,最好使用 ssh 密钥进行身份验证。不要使用 https 结帐。如果每次与服务器交互时都必须输入密码,那么您会做得更少,合并代码的频率也会降低。将会发生更多冲突。
尽管通过 Sourcetree 和 git bash 在提示符中输入凭据登录失败 window,GitHub 桌面应用程序工作顺利
要克隆私有存储库,只需放置 password
和 username
是不够的,因为终端不会告诉您,但您必须使用 [= 复制 personal_access_token
33=] 帐户并将其放在密码的位置。
$ git clone https://github.com/username/repo.git
Username: your_username
Password: your_token
此外,您可以通过以下步骤轻松访问您的令牌:-
现在检查 repo 列,然后单击 Generate token
现在在终端要求输入密码时复制并粘贴它。
NOTE: - Treat your tokens like passwords and keep them secret
如果不询问凭据,那么最简单的解决方案是使用凭据进行克隆。
选项 B 适用于密码包含 URL 以奇怪方式处理的任何特殊字符的情况。此选项询问密码。
我刚遇到这个问题。最简单的方法是 select 克隆到 Visual Studio。 Visual Studio 然后提示您输入凭据。输入凭据后,设置路径。然后你的存储库被克隆。
如果您使用的是 Gitlab,出于某种原因,git 使用 http 进行克隆是行不通的。 Git 使用 ssh 克隆是唯一的选择。
git clone git@gitlab.example.com:demo.git
1- 清除 windows 中的所有凭据,如上面的答案所述 2- 确保你有最新的 git,如果你的 git 没有更新到最新版本,你也会得到这个错误。
3- 完成上述步骤后。只需简单地克隆,它就会要求提供凭据并且会起作用
对于新来的人,
赞成的答案不再是答案,因为
remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead. remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.
无需重复访问令牌回复,去关注他们。