当我尝试使用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日周二到期。为什么今天这个被删除了?


当前回答

一个命令简单的解决方案来解决它

如果你的计算机没有SSH密钥添加到GitHub帐户,我会在回答的最后添加信息让你这样做。你应该先做。

推送失败后,执行以下操作:

git remote set-url origin git@github.com:{user_id}/{project_name}.git

再推一下。这样就有用了。

让我在下面展示我的案例。 (我会指导你如何做你的案子。)

首先,当我添加、提交和推送时,我遇到了这个问题:

然后,我当前的Git日志如下。

最后,这是我解决问题的方法。

就我而言,

{project_name} <-> open-idea-pool . {project_name} <-> open-idea-pool . {user_id} <-> milochen0418是 {branch_name} <-> master . {branch_name

(你的branch_name可能是main,但不是master)

当我推失败时,我唯一需要的是这一个命令:

git remote set-url origin git@github.com:{user_id}/{project_name}.git

然后我再按一下:

git push -u origin {branch_name}

以我的案例为例,

git remote set-url origin git@github.com:milochen0418/open-idea-pool.git
git push -u origin master

它的工作原理。

-- 顺便说一下,这是创建一个SSH密钥到GitHub帐户的过程。

您可以参考这两个链接来进行操作。这里的信息支持Mac、Windows和Linux。

关于添加SSH密钥到GitHub的问题 添加一个新的SSH密钥到您的GitHub帐户

此外,如果你想克隆一个新项目,你可以执行以下命令:

git clone git@github.com:{user_id}/{project_name}.git

其他回答

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

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

然后

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


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

GitHub在密码认证方面做了一些改变。如果您试图通过用户名和密码访问Git,那么它将不允许您访问。因此,使用个人访问令牌而不是密码来在任何地方访问Git。

下面是生成个人访问令牌的步骤。

点击这里获取令牌- https://github.com/settings/tokens

步骤1 -打开GitHub和登录与您的凭证。

步骤2 -单击“设置”菜单。

步骤3 -从设置菜单单击开发人员设置

步骤4 -从开发人员设置菜单,单击个人访问令牌

步骤5 -从个人访问令牌中,单击Generate new令牌按钮。

第6步-现在填写所需的详细信息,如注意,到期,选择范围。然后单击Generate Token按钮。

步骤7 -在此之后,生成了一个新的令牌。复制生成的令牌,并使用该令牌使用用户名和令牌访问Git。

如果您使用的是Windows操作系统,请按照以下步骤操作。

打开控制面板→用户帐户→管理您的凭证→Windows凭证。

它将显示所有通用凭证。找到你的GitHub URL并点击它。现在点击编辑按钮。然后将从GitHub生成的个人访问令牌添加到密码字段中。然后点击保存按钮。

现在您可以访问Git了。

如果你在Android Studio中访问Git,如果被要求输入密码,那么在任何地方添加GitHub个人访问令牌,而不是你的密码。

对于Linux,这些简单的步骤可以解决您的问题

如果Git密码缓存在凭据中。Helper,然后取消设置: Git config——local——unset credentials .helper 或者,如果你已经全局设置了你的凭证,那么: Git config——global——unset credentials .helper 现在转到你的GitHub帐户设置 点击开发者设置 选择个人访问 使用给定的权限生成一个令牌,例如, 现在将git拉入git存储库 提供用户名和生成的令牌作为密码

这是一个循序渐进的简单解决方案。

PS:如果Git一遍又一遍地要求你输入用户名/令牌,这让你很恼火,请遵循以下三个简单的步骤

执行命令nano ~/.git-credentials。删除GitHub行并保存它。 Git配置——全局凭据。辅助存储 在物理上,令牌保存在文件~/.git-credentials中是有风险的 运行git pull并只提供一次用户名和密码

现在,它不会一遍又一遍地询问用户名和访问令牌!

对于想要使用Sourcetree的人:

在源路径上像这样复制:

https://<token>@github.com/<username>/<repo>

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

解决方案

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