支持密码验证已被移除。

1589
我在使用git pull命令时,在控制台上遇到了这个错误:
远程:支持密码身份验证已于2021年8月13日移除。 请参阅https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls以获取有关当前推荐的身份验证方式的信息。 致命错误:身份验证失败...
这很奇怪,因为我只是按照文档的说明,在GitHub上创建了一个令牌两周前。该令牌将于2021年10月26日过期。为什么今天被移除了呢?

13
@JuanC 这是一份针对 Mac 的快速教程,视频链接为 https://youtu.be/iKf8-hhdWjs。 - VedantK
6
谢谢@VeKe的教程!我成功解决了问题,但是有点让人误解的是,当我被要求输入“密码”时,实际上用的是令牌。请问这个问题该如何翻译? - Juan C
6
可能是你的仓库设置了使用 HTTPS URL 而不是 SSH URL。请查看这里的“从 HTTPS 切换到 SSH 远程 URL”部分:https://docs.github.com/zh/get-started/getting-started-with-git/managing-remote-repositories#switching-remote-urls-from-https-to-ssh - user3170906
6
也许现在是时候接受一个答案了(在这29个答案中选择一个)? - Peter Mortensen
1
目前(23天前)这个问题在Stack Overflow上的21642945个问题中,以查看率(可能是搜索引擎点击率-或者它变得病毒式传播了吗?)而言处于非常顶端。在那23天里,平均每天有7600次浏览(尽管受SEDE更新计划的影响-因此实际速率可能会显着提高)。 - Peter Mortensen
显示剩余15条评论
49个回答

3

Android Studio Arctic Fox 解决方案(Windows 10)

我在使用 Android Studio Arctic Fox(最新版本)时,通过个人访问令牌进行了身份验证,但在2021年8月14日仍然遇到了以下错误:

remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.

我在github.com上生成了一个新的访问令牌,将我的GitHub帐户从Android Studio中删除,然后使用新的访问令牌再次添加了该帐户。但是仍然显示相同的错误。

阅读Stack Overflow上的其他解决方案后,我下载了GitHub CLI,并在Windows命令提示符中成功使用访问令牌添加了我的GitHub帐户,然后尝试再次从Android Studio推送存储库,但仍然失败。

然后根据这篇文章的指示,在命令行中执行以下操作:

cd <project-directory>
git remote set-url origin https://<TOKEN>@github.com/<user_name>/<repo_name>.git

我从Android Studio再次推送提交,最终成功了!


3
只需三个命令:

首先按照官方文档中所述创建一个 Token:创建个人访问令牌

然后重置 Git 凭据。

git config --global --unset credential.helper

克隆或拉取您的代码库:

`git pull` or `git clone`

然后将令牌作为您的密码输入。

如果您想保存您的令牌,可以使用:

git config --global credential.helper cache

3

近期,GitHub更新了其远程:支持密码验证功能。将于2021年8月13日移除使用用户名和密码验证的方式,改用PAT(个人访问令牌)来访问GitHub API。

您可以在这篇博客文章中了解更多信息。

现在启用PAT

  • 登录您的GitHub帐户。
  • 按照此文档进行下一步操作。

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

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

Username: your_username
Password: your_token

注意:你的令牌有一个过期时间,必须保密并在需要通过命令行进行身份验证时使用。

提示

如果你正在克隆一个由组织拥有的仓库:

组织

  • 确保你是该组织的成员

或者如果是一些个人仓库,则:

  • 确保你已经启用了以下功能

组织/个人需要像这样启用远程克隆和派生

  • 进入组织设置:

设置页面

  • 启用成员权限:

    成员权限页面


3

针对想要使用 Sourcetree 的人:

只需将路径复制如下所示:

https://<token>@github.com/<username>/<repo>

Add like your repository like this to the source path


3

对于 macOS 用户,只需按照以下步骤操作:

(我从 Kartik Tyagi 的这部分内容中提取了一些内容,但添加了一个被遗漏的重要部分。)

  1. 转到此链接:https://github.com/settings/tokens(个人资料 -> 设置 -> 开发人员设置 -> 个人访问令牌)。 (不要进入存储库设置; 这是您的个人资料设置)。
  2. 生成一个新令牌并将其复制粘贴到安全位置。
  3. 现在在您的 Mac 中搜索一个名为 Keychain Access 的应用程序。
  4. 搜索 github.com

如果不存在:

5.1. 点击“创建新的钥匙串项目”按钮(记事本笔标志)。

钥匙串项目名称:https://github.com

帐户名称:https://github.com(必须保持不变。不要添加 www。否则将无法正常工作)

密码:粘贴您生成的令牌

如果存在:

5.2. 如果有多个 GitHub 登录,则选择 Kind: Internet password,双击它。

  1. 单击“显示密码”,然后输入您的 Mac 密码并按 Enter
  2. 现在应该可以看到密码。现在,只需粘贴您在步骤 2 中生成的令牌,然后单击 保存更改

就是这样。享受吧!


1
这个不起作用。在我完成所有步骤后,在 Mac 上运行命令 git push -u origin main 会提示输入用户名,我提供了用户名,然后要求输入密码。在密码提示处,我尝试通过粘贴(cmd+V)和 [Enter] 来输入密码,这样做可以成功。 - Adam Cox
我很有可能忘记在这里加上这部分。谢谢您提醒。 - Joyanta J. Mondal

3

如果在2020年8月13日之前克隆了项目,请在项目目录中运行以下命令:

git remote set-url <remote_name> <remote_url>
git pull

输入您的用户名个人访问令牌作为密码


git remote set-url origin https://github.com/myName/GitTest.git - Akitha_MJ

3
  1. 使用SSH(忘记https)(例如,不要使用https url进行克隆)
  2. 使用个人访问令牌(PAT)(忘记用户名/密码)

(例如,“设置”>“开发者设置”>“个人访问令牌”)

  1. 将git更新到最新版本(例如2.35.1)//我认为这很重要
  2. 在Github中,取消“设置”>“开发者设置”>“保持我的电子邮件地址私有”

结论:您在Github中添加个人访问令牌。然后从任何IDE(例如Android Studio、IntelliJ IDEA等)中,您可以使用ssh添加远程(例如,名称:origin,URL:git@github.com:your_github_username/your_git_repo.git)。就是这样

如果还没有完成,请执行以下操作:

  1. 配置全局git用户名和电子邮件

    git config --global user.name "your_username" && git config --global user.email "your_email"

如果在Windows中,您可以为您的用户添加Windows凭据,控制面板>用户>管理您的凭据>Windows凭据>添加通用凭据>

Internet地址将是git:https://github.com,您需要输入用户名和密码将是您的GitHub个人访问令牌=>点击确定,完成

之后,我能够使用git(获取/推送/拉取等)


另外:git config --global url."git@github.com:".insteadOf "https://github.com/" - Maf

2
从GitHub获取访问令牌:
GitHub → 设置 → 开发者设置 → 个人访问令牌 → 新建令牌
将新令牌复制并粘贴到记事本中。
打开Git Bash,输入以下命令:
git config --global credential.helper osxkeychain

git clone https://github.com/abc/angularProject.git

Username for 'https://github.com': Test

Password for 'https://test@github.com': (enter your token here)

在Windows上,大概是(最后一部分)吧? - Peter Mortensen

2

昨天我在MacBook的Keychain中尝试查找GitHub时遇到了一些问题。我尝试了很多方法,但都没有成功。

从我的角度来看,我使用的解决方法是通过SSH进行拉取和推送我的GitHub账户。

这使我能够在无需进一步配置的情况下完成操作。

  1. 您可以前往SSH密钥
  2. 然后新SSH密钥
  3. 如果您已经在本地创建了SSH,请在终端中运行pbcopy < ~/.ssh/id_rsa.pub
  4. 然后从您的GitHub存储库中拉取、推送、克隆或执行任何您需要的操作,就完成了

我知道这不是解决问题的方法,但对于我来说,这很有效,因为我需要快速完成操作,而且我老实说没有任何理由需要使用HTTPS而不是SSH。


那对我没用。 - Daniel
你能提供更多细节吗?你已经生成了 SSH 吗? 另外,在克隆仓库时,请确保将 HTTPS 更改为 SSH。 - kosmikgirl

2

针对 Mac

如果您的钥匙串中没有任何关于“GitHub”的内容,请创建一个新的钥匙串项目并添加您的详细信息。将来自 GitHub 的令牌插入密码的位置。

Enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接