当我尝试使用git pull时,我在控制台上得到了这个错误:

remote:在2021年8月13日删除了对密码认证的支持。请改用个人访问令牌。 remote:请参阅https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/了解更多信息。 致命:无法访问“…”:请求的URL返回错误:403

这很奇怪,因为我只是在两周前按照文档在GitHub上创建了一个令牌。该代币将于2021年10月26日周二到期。为什么今天这个被删除了?


当前回答

三个命令:

首先按照官方文档中的说明创建一个令牌:创建个人访问令牌

然后重置Git凭证

git config --global --unset credential.helper

克隆或拉出你的存储库:

`git pull` or `git clone`

然后输入令牌作为密码。

如果你想保存你的令牌,你可以使用:

git config --global credential.helper cache

其他回答

这条消息意味着您正在使用密码而不是个人访问令牌通过HTTPS访问GitHub,这将不再被允许。GitHub已经禁用了密码认证,因为人们不小心泄露密码是很常见的,虽然可以限制个人访问令牌来限制损害,但密码却不能。

如果您没有在提示下显式地输入密码,那么很可能您有一个凭据管理器,它保存了您的密码,并在没有提示的情况下发送了密码。

您可以按照Git FAQ中列出的指示清除证书管理器:

$ echo url=https://account@github.com | git credential reject

你应该使用相同的URL,但替换帐户与你自己的用户名(例如,在我的情况下,它将看起来像echo URL =https://bk2204@github.com)。

然后,下次尝试推或拉时,Git将提示您输入用户名和密码。对于用户名,输入您的GitHub用户名,对于密码,在相应的设置页面上生成一个新的个人访问令牌,并将其粘贴到密码字段中。如果您正在从命令行工作,您可能看不到任何表明密码已成功粘贴的迹象;这是正常的,所以之后只需按Enter。

这将在凭据管理器中保存个人访问令牌,以便下次使用(假设您已经设置了一个)。如果你不确定你是否已经设置好了,运行git config credential。助手,看看它是否输出了什么。

如果您没有设置一个,您应该添加一个,这样您就不必记住您的令牌。根据不同的操作系统,执行以下命令:

Git配置——全局凭据。Windows上的助手管理器; Git配置——全局凭据。帮助osxkeychain在macOS; Git配置——全局凭据。Linux上的helper libsecret(如果可用);或 Git配置——全局凭据。如果libsecret不可用,则Linux上的helper存储。

然后你可以再次尝试推或拉,直到不再有提示。

我花了几个小时在这个问题上,使用WSL 2 (Ubuntu 20.04 (Focal Fossa))。打开一个新的外壳对我很有用。尝试旧的外壳,它没有工作。

我也在调查GitLab,因为他们可能没有微软的文化,强迫你按照他们的方式做事(“你会喜欢这样”),或者一直发布破坏性的更改。

我不知道什么真的有用,但我知道它现在对我有用。以下是我所做的一切:

生成PAT并用作密码-它不起作用。 在Windows凭据管理器中清除github.com条目-不工作。 将PAT添加到存储库URL,如下所示

https:// < personal-access-token > @github.com/ < my-repo-url >

它起作用了,但我不喜欢这个解决方案。

重新启动电脑。从https://git-scm.com安装了最新的Git -在Sourcetree -菜单工具→选项→Git→Git版本-选择“系统”。 从存储库URL中删除了PAT -它仍然有效。

在我看来,安装新的“Git”真的很有帮助,所以第三步可能是不必要的,但我不能确定。我不知道如果不临时向URL添加PAT,它是否会工作。也许它还在某个地方保存了一些东西。

首先,您需要基于SSH密钥的身份验证

Windows教程:SSH密钥验证 Linux/Mac教程:SSH基于密钥的身份验证 文档

然后

生成个人令牌 设置你的用户名:git config——global user.name "userName" 设置您的电子邮件地址:git config—global user。电子邮件“电子邮件” Git配置——全局凭据。辅助缓存 Git push/ Git pull之类的用户名和密码(个人token)


你可以跟随这个视频:使用Git和GitHub的个人访问令牌

密码认证支持已于2021年8月13日移除。请改用个人访问令牌。

解决方案

创建一个GitHub个人访问令牌(PAT)并复制它。 对于macOS,将其添加到GitHub下的KeyChain Access。 重点搜索→输入KeyChain→选择KeyChain访问→搜索github.com→粘贴您的PAT 对于Windows,将PAT添加到用户的Windows凭据中。 搜索→键入凭据管理器→将您的PAT添加到github.com 如果存储库是某个组织的一部分,您还需要使用个人访问令牌登录到该组织,以便该组织能够识别它。如果您已经登录,请先退出。 Git克隆照常:-)