使用令牌将一些代码推送到 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】:我今天也遇到了这个问题,在 macOS 上。
我通过以下方式解决了这个问题:
首先,获得一个令牌!遵循 GitHub 的指导。我认为您只需单击警告中提供的链接即可。
二、在macOS上更换钥匙链:
-
在 macOS 上搜索“钥匙串”。
搜索“GitHub”。
使用您的新令牌更改带有“Internet 密码”的密码。
那么,我的问题解决了,我现在可以“git push”了。
【讨论】:
谢谢,它有帮助。我们需要注意的另一件事是每次令牌过期时生成一个令牌,或者我们生成一个永不过期的令牌。 非常感谢!这与此处的答案基本相同:***.com/a/68776344/15250330 使用您的新令牌更改带有“Internet 密码”的密码。为我做了诀窍 我想可能是去 github.com 输入您的凭据并将信息保存在钥匙串中。然后检查 @yanjieZe 和@AhmadShahwaiz:你的 Mac OSX 解决方案是错误的。您无需更改仅用于浏览器使用的“Internet 密码”(与 OP 无关)。您必须使用name=git:https://github.com
、Kind=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 pull
、git push
、etc.。
@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 pull
、git push
、etc.。
你好@Thomas 谢谢【参考方案6】:
首先,您需要在Creating a personal access token
中创建个人访问令牌git clone https://github.com/username/repo.git
Username: your_username
Password: your_token
【讨论】:
大多数人已经知道这一点,您的回答并未解决 OP 中的主要问题。问题是永久设置凭据,以便可以从 bash 终端调用git pull
和 git push
。【参考方案7】:
Mac 解决方案:
首先从 GitHub 生成一个令牌。并用 GitHub 部分中钥匙串访问的令牌替换您的密码。
【讨论】:
您的 Mac OSX 解决方案明显错误。您无需更改仅为浏览器使用的“Internet 密码”。您必须使用name=git:https://github.com
、Kind=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 -“已删除对密码身份验证的支持”[重复]的主要内容,如果未能解决你的问题,请参考以下文章