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


当前回答

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

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

其他回答

如果你使用的是macOS,只需简单地遵循以下步骤:

转到此链接:https://github.com/settings/tokens(配置文件->设置->开发人员设置->个人访问令牌)。(不要去仓库设置;这是你的个人资料设置) 生成一个新的令牌并将其复制粘贴到某个安全的地方。 现在在你的Mac电脑上搜索一个名为Keychain Access的应用程序。 搜索github.com(如果有多个GitHub登录,然后选择Kind: Internet password),双击它。 点击显示密码,然后输入你的Mac密码并按enter键。 密码现在应该可见了。现在,只需粘贴在第2步中生成的令牌,然后单击Save changes。

就是这样。享受吧!

如果你使用的是Windows:

按照上面的步骤1和2执行。 在Windows操作系统中搜索一个名为Credential Manager→Windows Credentials的应用程序。 搜索github.com,用你在GitHub上生成的令牌编辑密码。 现在享受!

开发者破解(短代码):

git remote set-url origin https://<githubtoken>@github.com/<username>/<repositoryname>.git

而克隆:

git clone https://<username>:<githubtoken>@github.com/<username>/<repositoryname>.git

它可以在任何操作系统(Mac, Windows或Linux)上工作。

缺点:您必须记住或应该需要对本地的每个存储库进行操作。所以我希望每个人都使用上面提到的步骤。

注意:

对于那些没有这个条目的人:它可以。一种方法是——克隆一个项目。然后它会询问你的用户名和密码。而不是密码给它的令牌,然后进入将作出。

从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更新了他们的远程:支持密码认证。它于2021年8月13日被删除,以使用PAT(个人访问令牌)来访问GitHub API。

你可以在这里的博客文章中阅读。

现在启用PAT

登录你的GitHub账户。 按照这篇文章进行下一步操作。

现在要在命令行上使用令牌,执行以下操作:

git clone https://github.com/username/repo.git

Username: your_username
Password: your_token

请注意,您的令牌有一个过期时间,必须私下保存,并在需要在命令行上进行身份验证时使用。

小心

如果你克隆到一个存储库,该存储库属于:

组织。

确保你是那个组织的成员

或者是一些个人存储库,

请确保已启用以下功能

组织/个人需要启用远程克隆和分叉,如下所示:

进入组织设置:

启用成员特权:

对于Mac,去创建你的令牌。你只能看到一次。复制并安全地存储它。

打开Terminal,执行:gh auth login

*gh可以通过Homebrew安装

回答问题。确保在被问到时选择HTTPS。

使用我的账户→设置→开发人员设置→个人访问令牌→生成新的令牌。

git remote set-url origin https://<token>@github.com/<username>/<repo>