删除了对密码身份验证的支持。请改用个人访问令牌

当我尝试使用时,我的控制台上出现此错误git pull

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

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

回答

从 2021 年 8 月 13 日起,GitHub 在对 Git 操作进行身份验证时不再接受帐户密码。您需要添加PAT(个人访问令牌),您可以按照以下方法在您的系统上添加 PAT。

在 GitHub 上创建个人访问令牌

从您的 GitHub 帐户,转到Settings => Developer Settings => Personal Access Token => Generate New Token (Give your password) => Fill up the form => 单击Generate token => Copy the generated Token,它将类似于ghp_sFhFsSHhTzMDreGRLjmks4Tzuzgthdvfsrta

现在根据您的机器遵循以下方法:

对于 Windows 操作系统?

控制面板转到凭据管理器=> Windows 凭据=> 查找=>编辑=> 在密码中替换为你的GitHub 个人访问令牌=> 你完成了git:https://github.com

如果您没有找到git:https://github.com=> 单击添加通用凭据=> 互联网地址将是git:https://github.com,您需要输入您的用户名和密码将是您的GitHub 个人访问令牌=> 单击确定,您就完成了


对于 macOS ?

单击菜单栏右侧的 Spotlight 图标(放大镜)。键入Keychain access然后按 Enter 键启动应用程序 => 在 Keychain Access 中,搜索github.com=> 查找Internet 密码条目github.com=> 相应地编辑或删除该条目 => 大功告成


对于基于 Linux 的操作系统?

对于 Linux,您需要使用用户名和电子邮件地址配置本地 GIT 客户端,

$ git config --global user.name "your_github_username"
$ git config --global user.email "your_github_email"
$ git config -l

一旦配置了 GIT,我们就可以开始使用它来访问 GitHub。例子:

$ git clone https://github.com/YOUR-USERNAME/YOUR-REPOSITORY
> Cloning into `Spoon-Knife`...
$ Username for 'https://github.com' : username
$ Password for 'https://github.com' : give your personal access token here

现在在您的计算机中缓存给定的记录以记住令牌:

$ git config --global credential.helper cache

如果需要,您可以随时通过以下方式删除缓存记录:

$ git config --global --unset credential.helper
$ git config --system --unset credential.helper

现在尝试拉-v以验证

$ git pull -v

Linux/Debian
(克隆如下):

git clone https://<tokenhere>@github.com/dadenewyyt/react-projects.git

对于PhpStorm

如果您使用 PhpStorm,请转到菜单Git => pull并选择通过Personal Access Token 进行身份验证。输入您PAT将允许拉/推更改。

  • 嗯,当我克隆我的 repo 时,它没有要求令牌,那么我应该如何进行?
  • 请务必将令牌保存在某个本地文件或某个 cloud.Upvoted 中。
  • 鉴于 OP 声明他们已经在两周前创建了一个令牌,这并没有解决实际问题。
  • 与@Prhyme 相同的体验。我无法让 git 提示我输入用户名和密码,甚至尝试克隆私有存储库、推送到存储库等。当我去推送到存储库时,它继续给出“已删除对密码身份验证的支持”消息,而不提示任何内容。
  • 对于mac第一次,当你将代码推送到你的repo时提示你输入密码时,输入访问令牌,它会将令牌添加到钥匙串中,并且不会再次提示。

回答

如果您使用的是 macOS,只需按照以下步骤操作:

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

就是这样。享受!

如果您使用的是 Windows:

  1. 按照上面的步骤 1 和 2 进行操作。
  2. 在您的 Windows 操作系统中搜索名为Credential Manager的应用程序?然后是Windows 凭据
  3. 使用您在 GitHub 上生成的密码搜索github.com编辑密码token。现在享受吧!

开发人员的黑客(简码):

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)。

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

  • 我没有这样的条目 (Mac)
  • 我发现在 Windows 上,有必要*删除*凭据管理器中的现有凭据。然后,下次我尝试执行 `git push` 时,它提示输入个人访问令牌。简单地重置现有凭据是行不通的。

回答

我的帐户 > 设置 > 开发者设置 > 个人访问令牌生成新令牌

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

  • 请注意,这似乎需要在每个存储库中运行此命令才能使用新凭据重置该存储库。希望有一个全球解决方案。
  • 这个非常适合我。上面那个投票最多的没有用。
  • 谢谢!使用令牌作为密码不起作用,但添加这项工作很棒
  • 迄今为止最好的解决方案。
  • 但是使用令牌,任何拥有此令牌的人都可以推送到您的存储库。在公共计算机中,您将如何保持密码保护?

回答

此消息意味着您正在使用密码而不是个人访问令牌来通过 HTTPS 访问 GitHub,并且不再允许这样做。GitHub 已禁用密码身份验证,因为人们经常会意外泄露他们的密码,虽然可以限制个人访问令牌以限制损害,但密码不能。

如果您没有在提示时明确输入密码,那么您可能有一个凭证管理器,它会保存您的密码并在不提示您的情况下发送密码。

您可以按照Git 常见问题中列出的清除凭证管理器的说明进行操作:

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

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

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

假设您已经设置了一个,这将在您的凭证管理器中保存个人访问令牌以备下次使用。如果您不确定是否已设置,请运行git config credential.helper并查看它是否输出任何内容。

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

  • git config --global credential.helper manager 在 Windows 上;
  • git config --global credential.helper osxkeychain 在 macOS 上;
  • git config --global credential.helper libsecret在 Linux 上(如果可用);或者
  • git config --global credential.helper store在 Linux 上如果libsecret不可用。

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

  • 查看 /sf/ask/4814341031/#68776344 在 Mac 上更改密码
  • `echo url=https://account@github.com | git credential reject`正是我所需要的。谢谢!

回答

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

  1. 如果您的 Git 密码缓存在credential.helper 中,则取消设置它:

    git config --local --unset credential.helper
    

    或者,如果您已全局设置凭据,则:

    git config --global --unset credential.helper
    
  2. 现在转到您的 GitHub帐户设置

  3. 点击开发者设置

  4. 选择个人访问

  5. 生成具有给定权限的令牌,例如,

  6. 现在git pull在您的 Git 存储库中

  7. 提供用户名和生成的令牌作为密码

这是一个简单的一步一步的解决方案。

PS:如果你对Git一遍遍的要求用户名/令牌感到恼火,请按照这三个简单的步骤

  • 运行nano ~/.git-credentials。删除 GitHub 行并保存。

  • git config --global credential.helper store

    令牌保存在文件中的物理风险 ~/.git-credentials

  • 运行git pull并只提供一次用户名和密码

它现在不会一次又一次地要求用户名和访问令牌!


回答

GitHub 对密码验证进行了更改。如果您尝试通过用户名和密码访问 Git,那么它不允许您。所以使用个人访问令牌而不是密码来访问任何地方的 Git。

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

单击此处 - https://github.com/settings/tokens

第 1 步 - 打开 GitHub 并使用您的凭据登录。

第 2 步 - 单击设置菜单。

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

第 4 步 - 从Developer Settings菜单中单击Personal access token

步骤 5 - 从个人访问令牌中单击生成新令牌按钮。

第 6 步 - 现在填写所需的详细信息,例如Note、Expiration、Select scopes。然后点击下方的Generate Token按钮。

步骤 7 - 在生成新令牌之后。复制生成的令牌并使用此令牌通过用户名和令牌访问 Git。

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

打开控制面板=> 用户帐户=> 管理您的凭据=> Windows 凭据

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

现在您可以访问 Git。

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


回答

从设置 > 开发人员设置在 Github 中生成访问令牌。

如果您过去克隆了您的仓库并将其设为源,那么您可以更改身份验证,

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

如果您打算在 2021 年 8 月 13 日之后克隆 repo,那么您可以使用普通的 clone 命令并在密码字段中设置生成的访问令牌


回答

对于Ubuntu以下步骤

https://github.com/settings/tokens去生成一个令牌。

git push

username: user_github_username

password: add_generated_token 而不是密码。


回答

生成 GitHub 个人访问令牌 (PAT)

  1. 登录到您的 GitHub 帐户并打开Settings ? 开发人员设置
    个人访问令牌。
  2. 单击Generate New Token

不要忘记复制和一代又一代的令牌。它只能访问一次。

视窗

  1. 打开控制面板用户帐户? 凭证管理器
  2. 现在,寻找git:https://github.com.
  3. 点击编辑
  4. 将密码替换为 GitHub 个人访问令牌。

苹果电脑

  1. 单击 Spotlight 图标并搜索Keychain Access
  2. 在 Keychain Access 中,搜索github.com
  3. 现在,查找 github.com 的互联网密码条目。
  4. 更新条目。

回答

一个命令简单的解决方案

如果你的电脑没有在 GitHub 账号中添加 SSH 密钥,我会在答案的最后添加信息给你做。你应该先做

推送失败后,再做这个
$ git remote set-url origin git@github.com:{user_id}/{project_name}.git
并再次推送。然后就是工作了。

让我在下面展示我的案例。
(我将指导您如何处理您的案例)

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

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

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

就我而言,

  1. {project_name} <-> open-idea-pool

  2. {user_id} <-> milochen0418 是

  3. {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

这是工作。

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

你可以参考这两个链接来做。此处的信息支持 Mac、Windows 和 Linux。
(1)向 GitHub 添加 SSH 密钥的问题
(2) https://docs.github.com/en/enterprise/2.15/user/articles/adding-a-new-ssh-key-to-your-github-account


回答

在Linux中,你可以在GitHub中生成一个新的访问令牌,直接替换~.git-credentials文件中的密码

密码部分:@


回答

Mac 用户——简单的解决方案。

在 GitHub 中设置个人访问令牌

设置 -> 开发者设置 -> 个人访问令牌

打开钥匙串 -> 输入“Github”

将密码更改为个人访问令牌

尝试提交/推送。

选择“始终允许”,一切照旧。


以上是删除了对密码身份验证的支持。请改用个人访问令牌的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>