【问题标题】:Use token to push some code to GitHub - "Support for password authentication was removed" [duplicate]使用令牌将一些代码推送到 GitHub -“已删除对密码身份验证的支持”[重复]
【发布时间】:2021-10-17 02:49:56
【问题描述】:

使用git push时的错误信息:

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

我无法使用令牌访问 GitHub,如何将代码推送到 GitHub?

【问题讨论】:

  • 虽然 git push 或一些库?此外,点击它的链接,阅读它告诉你需要做什么的页面。 tldr,请参阅:docs.github.com/en/github/authenticating-to-github/…
  • 当我使用 git push 时。我在说明中添加了一张图片。
  • 是的,我已经阅读了链接,但我不确定这是我的情况。我创建了一个令牌,在文档中,我没有看到任何告诉我如何将令牌用于 git credential 的内容:
  • 好的,按照上面的链接,基本上,您创建的令牌(链接中的说明)会替换您通常输入的密码值(ref)。如果您在本地开发,则没有理由不使用公钥 SSH,您只需添加一次,然后您无需使用用户名或密码对任何 repo 进行任何 git 操作。
  • 明白了。我只需要删除钥匙串中的 github 密码即可重新登录 github 凭据 :)。无论如何,非常感谢!

标签: github token


【解决方案1】:

GitHub 宣布他们打算要求对所有经过身份验证的 Git 操作使用基于令牌的身份验证。在 GitHub.com 上验证 Git 操作时,他们将不再接受帐户密码:

生成令牌:

在 Mac 上:

  • 转到钥匙串访问
  • 登录标签和所有项目
  • 点击 GitHub 密钥
  • 将密码更改为最近生成的令牌

在 Windows 上:

  • 转到控制面板用户帐户凭据管理器

  • 编辑 GitHub 的通用凭证

  • 粘贴令牌而不是密码

【讨论】:

  • 显示人,用这个技巧在 mac 上运行
  • Github 没有在其文档和/或错误消息中为 Mac 用户指明这一关键步骤可能会花费数百或数千个开发时间。
  • 这对 MacOS 用户来说不是一个好的解决方案。它会替换您的 safari 登录凭据,并且可能会根据令牌权限破坏后续第三方 oauth 链接到您的 github 帐户。
  • 嗨@JoshuaKolden,感谢您提供的信息,那么有什么好方法可以为 MacOS 解决这个问题?
  • @Thomas 我不能,因为它已关闭。
【解决方案2】:

我今天也遇到了这个问题,在 ma​​cOS 上。

我通过以下方式解决了这个问题:

首先,获得一个令牌!遵循 GitHub 的指导。我认为您只需单击警告中提供的链接即可。

二、在ma​​cOS上更换钥匙链:

  1. 在 macOS 上搜索“钥匙串”。
  2. 搜索“GitHub”。
  3. 使用您的新令牌更改带有“Internet 密码”的密码。

那么,我的问题解决了,我现在可以“git push”了。

【讨论】:

  • 谢谢,它有帮助。我们需要注意的另一件事是每次令牌过期时生成一个令牌,或者我们生成一个永不过期的令牌。
  • 非常感谢!这与此处的答案基本相同:stackoverflow.com/a/68776344/15250330
  • 使用您的新令牌更改带有“Internet 密码”的密码。为我做了诀窍
  • 我想可能是去 github.com 输入您的凭据并将信息保存在钥匙串中。然后检查
  • @yanjieZe 和@AhmadShahwaiz:你的 Mac OSX 解决方案是错误的。您无需更改仅用于浏览器使用的“Internet 密码”(与 OP 无关)。您必须使用name=git:https://github.comKind=Programme password、Account=您的 github 用户名、where=git:https://github.com 添加一个条目。然而,最干净的方法是brew install gh,然后运行gh auth login。这会将 正确 条目添加到您的钥匙串中(参见@niyaz 的解决方案)。
【解决方案3】:

您需要更改远程 URL:

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

token 可以找到here

【讨论】:

  • 什么是流?你能指导一下流吗?
  • @Habib Stream 是一个分支模型。如果你想在 master 分支中推送代码,master 将是你的主流。
  • 我尝试了相同的命令,通过添加“来源”或我的原始名称来设置它的 URL。
【解决方案4】:

第 1 步:转到您的 GitHub 帐户 → 设置开发者设置个人访问令牌 → 生成/重新生成您的令牌

第 2 步:转到 https://cli.github.com 并下载 GitHub CLI

第 3 步:转到命令行或终端 → gh auth login,然后输入登录凭据。完成。

【讨论】:

  • 这是无缝的!谢谢。
  • 只有这对我有用。生成 PAT ---> 在钥匙串中没有“Internet 密码”条目!!!所以我运行brew install gh,然后执行上述命令并选择适当的选项(PAT 需要repo + workflow + admin:read:org 的权限)然后粘贴到 PAT 中,完成。我现在可以从 bash 中调用 git pullgit pushetc.
  • @Niyaz 您的答案是迄今为止 Mac OSX esp 唯一正确的答案。关于OP。
  • @Thomas,刚刚在 Windows 10 上试用过,似乎可以在 Windows 中执行上述步骤,第 1 步:cli.github.com - 为 Windows 下载 CLI 第 2 步:在 Windows 终端 gh auth login 一次使用用户名成功登录,然后我可以推送提交..
  • 太棒了!我只能说你的解决方案在 Mac OSX 下工作。但是鉴于您现在已经检查了 Windows(我假设安装了 Windows 的 bash?),那么您的解决方案是 imo 最干净和最好的。
【解决方案5】:

我也有同样的问题。对我来说,解决方案是在https://cli.github.com/ 中安装 GitHub CLI。在我的操作系统中安装后,我在终端中运行 gh auth login 并使用我在 GitHub 配置文件中生成的访问令牌通过浏览器登录。关注:

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


Esive com o mesmo questiona,para mim a solução foi instalar o GitHub CLI em https://cli.github.com/。 Após a instalação em meu sistema operation, executei $ gh auth login no meu terminal e fiz o login através do navegador com o token de acesso que eu gerei no perfil GitHub, siga:

Minha conta >> Configurações >> Configurações do desenvolvedor >> tokens de acesso pessoal [GERAR NOVO TOKEN]

espero te ajudar

【讨论】:

  • 完美!它有效!
  • 你好@metalheadcoder,谢谢。
  • 谢谢 :) 只有这对我有用。 PAT 生成 ---> 在 mac osx 钥匙串中没有“Internet 密码”条目!!!所以我运行brew install gh,然后执行上述命令并选择适当的选项(PAT 需要repo + workflow + admin:read:org 的权限)然后粘贴到 PAT 中,完成。我现在可以从 bash 中调用 git pullgit pushetc.
  • 你好@Thomas 谢谢
【解决方案6】:

首先,您需要在Creating a personal access token

中创建个人访问令牌
git clone https://github.com/username/repo.git

Username: your_username

Password: your_token

【讨论】:

  • 大多数人已经知道这一点,您的回答并未解决 OP 中的主要问题。问题是永久设置凭据,以便可以从 bash 终端调用 git pullgit push
【解决方案7】:

Mac 解决方案:

首先从 GitHub 生成一个令牌。并用 GitHub 部分中钥匙串访问的令牌替换您的密码。

【讨论】:

  • 您的 Mac OSX 解决方案明显错误。您无需更改仅为浏览器使用的“Internet 密码”。您必须使用name=git:https://github.comKind=Programme password、Account=您的 github 用户名、where=git:https://github.com 添加一个条目。但是最干净的方法是brew install gh,然后运行gh auth login。这会将 正确 条目添加到您的钥匙串中(参见@niyaz 的解决方案)。
【解决方案8】:

您需要创建个人访问令牌。您可以在 Creating a personal access token

中找到有关创建个人访问令牌的说明

确保访问令牌的安全和保密。之后,您需要将设备(笔记本电脑/台式机)中当前保存的密码替换为访问令牌。在 macOS 中,您可以搜索 Keychain 并使用 Internet 密码找到 GitHub,然后将其替换为您的访问令牌。有关说明,请参阅 Updating credentials from the macOS Keychain

在 Windows 中,它可能是 Credential Manager(我不确定)。看看这个:How to update your Git credentials on Windows

【讨论】:

    猜你喜欢
    • 2021-10-18
    • 2023-02-05
    • 2021-12-12
    • 2021-07-24
    相关资源
    最近更新 更多