为什么我在 Win10 Linux 子系统上运行时在 Github 上不断出现“身份验证失败”?

为什么我在 Win10 Linux 子系统上运行时在 Github 上不断出现“身份验证失败”?

我在一台运行 Windows 10 的计算机上,启用了开发人员模式并安装了 Linux 子系统。当我切换到 bash 时,我尝试从 git 运行一个简单的克隆命令:

git clone https://github.com/PrivateRepo/my-private-repo.git

当然,我在这里稍微修改了一下 URL,但你应该明白我的意思了。最初,我从该命令得到的响应是这样的:

致命:无法访问'https://github.com/PrivateRepo/my-private-repo.git/':服务器证书验证失败。CAfile:/etc/ssl/certs/ca-certificates.crt CRLfile:无

我在 Stack Overflow 上看到了一些关于这个问题的回答,但说​​实话,我不太清楚恰当的处理该错误的方法。话虽如此,我知道一种不恰当的方法,即通过运行以下命令完全规避该错误:

git config --global http.sslverify false

这似乎有效。我关闭了所有 SSL 验证,这可能不太好,但我需要让它正常工作,而这并不是这个问题的重点(我正在讨论这个问题)。但顺便说一句,如果你知道正确的解决方法,我洗耳恭听。

接下来,我重新运行git clone命令,这次它提示我输入用户名和密码,但最终因其他原因失败。它看起来如下:

git clone https://github.com/PrivateRepo/my-private-repo.git
Cloning into 'my-private-repo'...
Username for 'https://github.com': myuser
Password for 'https://[email protected]': 
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/PrivateRepo/my-private-repo.git'

但是,我可以向你保证,我输入的用户名和密码都是正确的。我还安装了适用于 Windows 的 Git,当我在那里尝试时,一切都正常。唯一的缺点是,它没有在命令行中提示我输入密码,而是打开了一个单独的窗口来输入凭据,并在那里要求我输入我的六位数 2FA 代码。然后它克隆得很好。我注意到在这样做时,它在 Github 中创建了一个个人访问令牌。所以我继续创建另一个个人访问令牌,并尝试在 bash 中手动使用它。基本上,myuser我没有输入用户名,而是输入了myuser:mytoken

git clone https://github.com/PrivateRepo/my-private-repo.git
Cloning into 'my-private-repo'...
Username for 'https://github.com': myuser:a1abcdefab2a34567ab8901a2bc3d4567890a1b2
Password for 'https://myuser:[email protected]': 
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/PrivateRepo/my-private-repo.git'

但如您所见,它仍然失败了。如何让 git 在 Windows 上的 bash 中运行?

答案1

您正在使用当前运行的 Linux 发行版上的实现git,您可能没有设置它。请尝试使用git.exe

git.exe clone https://github.com/PrivateRepo/my-private-repo.git

您可以alias在您的命令中.bashrc

alias git='git.exe'

答案2

您只需要使用您的用户名,然后使用访问令牌代替密码。您不需要密码,因为令牌会代替密码。

相关内容