当我尝试使用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存储。

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

对于那些使用Sourcetree和现有存储库的用户,您必须像这样更新存储库URL https:// < your_token > @github.com/username/repo.git

这是从这个答案中提取出来的。

我是一个Sourcetree用户,并通过“刷新OAuth令牌”在菜单工具→选项→身份验证→选择GitHub帐户来修复它。

如果你从未为你的GitHub帐户添加身份验证,你可以参考如何连接GitHub与SourceTree(方法1:通过OAuth连接远程帐户)。

从2021-08-13开始,GitHub在验证Git操作时不再接受帐户密码。您需要添加一个PAT(个人访问令牌),您可以按照下面的方法在您的系统上添加一个PAT。

在GitHub上创建个人访问令牌 从你的GitHub账户,点击设置→开发者设置→个人访问令牌→生成新的令牌(给出你的密码)→填写表格→点击生成令牌→复制生成的令牌,它将是ghp_sFhFsSHhTzMDreGRLjmks4Tzuzgthdvfsrta

现在根据您的机器执行以下方法:

Windows操作系统⤴ 从控制面板转到凭据管理器→Windows凭据→找到git:https://github.com→编辑→打开密码替换为您的GitHub个人访问令牌→完成 如果你没有找到git:https://github.com→点击添加一个通用凭证→互联网地址将是git:https://github.com,你需要输入你的用户名和密码将是你的GitHub个人访问令牌→点击确定,你就完成了


macOS版本⤴ 点击菜单栏右侧的Spotlight图标(放大镜)。输入钥匙链访问,然后按Enter键启动应用程序→在钥匙链访问,搜索github.com→找到github.com的互联网密码条目→编辑或删除相应的条目→你就完成了


linux操作系统⤴ 对于Linux,需要使用用户名配置本地GIT客户端 电子邮件地址, $ git配置——全局用户名“your_github_username” $ git配置——全局用户。电子邮件“your_github_email” $ git config -l 一旦配置了GIT,我们就可以开始使用它来访问GitHub。 例子: $ git克隆https://github.com/YOUR-USERNAME/YOUR-REPOSITORY 克隆到' YOUR-REPOSITORY '… 用户名:<输入您的用户名> 密码:<输入您的密码或个人访问令牌(GitHub) 现在在你的计算机中缓存给定的记录来记住令牌: $ git配置——全局凭证。辅助缓存 如果需要,你可以随时删除缓存记录: $ git config——global——unset credentials .helper $ git config——system——unset credential.helper 现在试着用-v来验证 $ git拉-v

Linux / Debian (克隆如下): Git克隆https://<tokenhere>@github.com/<user>/<repo>.git


对于PhpStorm 如果您正在使用PhpStorm,请进入菜单Git→拉并选择通过个人访问令牌进行身份验证。输入您的PAT,它将允许您拉/推更改。

首先在GitHub上创建令牌:

点击个人资料图片,在菜单中选择设置 在底部左侧菜单中选择“开发人员设置” 在左侧菜单中选择个人访问令牌(第三个选项) 选择Generate new token并执行以下步骤。

如果你没有安装GitHub CLI,你不会在你的钥匙链访问中找到它。因此,您应该首先安装它。

为macOS安装GitHub CLI Brew install gh Windows: Winget安装gh 铲斗安装gh 巧克力安装gh 在命令行中输入gh auth login,根据提示输入以下答案 ? 您想登录哪个账户?GitHub.com ? Git操作的首选协议是什么?HTTPS ? 用你的GitHub凭证验证Git ?是的 ? 您想如何验证GitHub CLI?粘贴身份验证令牌 粘贴您在GitHub上创建的令牌并按Enter。