使用令牌将一些代码推送到 GitHub -“已删除对密码身份验证的支持”[重复]

Posted

技术标签:

【中文标题】使用令牌将一些代码推送到 GitHub -“已删除对密码身份验证的支持”[重复]【英文标题】:Use token to push some code to GitHub - "Support for password authentication was removed" [duplicate] 【发布时间】: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 凭据 :)。无论如何,非常感谢! 【参考方案1】:

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

生成令牌:

转到您的 GitHub 帐户 token settings 生成令牌

在 Mac 上:

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

在 Windows 上:

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

编辑 GitHub 的通用凭证

粘贴令牌而不是密码

【讨论】:

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

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

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

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

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

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

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

【讨论】:

谢谢,它有帮助。我们需要注意的另一件事是每次令牌过期时生成一个令牌,或者我们生成一个永不过期的令牌。 非常感谢!这与此处的答案基本相同:***.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

【讨论】:

以上是关于使用令牌将一些代码推送到 GitHub -“已删除对密码身份验证的支持”[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用个人访问令牌在 github 操作工作流 (B) 中从不同的 repo(B) 提交和推送到私有 repo(A)

使用 Pycharm 和两因素身份验证推送到 GitHub

将本地的代码推送到公网的github账号去

推送后我无法提交

无法将提交推送到GitHub上新创建的存储库

将已有项目推送到github上