密码认证因停电而暂时禁用,请使用个人访问令牌代替。

243

我之前一直使用用户名密码推送我的代码,几个月来都能正常工作。但是突然间无法推送并出现了以下错误:

Username for 'https://github.com': shreyas-jadhav
Password for 'https://shreyas-jadhav@github.com':
remote: Password authentication is temporarily disabled as part of a brownout. Please use a personal access token instead.
remote: Please see https://github.blog/2020-07-30-token-authentication-requirements-for-api-and-git-operations/ for more information.

请注意,链接没有帮助。即使使用生成的令牌也无济于事。

版主提示:这是GitHub计划中即将永久性服务变更的一部分


4
GitHub将移除用户名密码身份验证,从现在开始您需要使用令牌(Token)。 - Liam
21
阅读该网页基本上告诉您所有这些内容。 - Liam
20
我有同样的问题,但那个页面并没有帮助。问题在于,即使使用生成的令牌作为密码,仍会出现相同的错误消息。 - Narann
15
为什么会用到“brownout”这个词? - Ross Presser
7
“Brownout”是指电力损失部分而非全部的情况。这个词源于白炽灯泡时代,当电力损失少许时,灯泡会明显变暗。在此语境下,GitHub正在“降低亮度”,以告知用户服务即将有所改变(即密码很快将完全停止使用)。 - Machavity
显示剩余17条评论
25个回答

1
你可以通过GitHub仪表板生成PAT(个人访问令牌)。
步骤1:登录GitHub账户。
步骤2:在任何页面的右上角,单击您的个人资料照片,然后单击“设置”。
步骤3:在左侧边栏中,单击“开发者设置”。
步骤4:在左侧边栏中,单击“个人访问令牌”。
步骤5:单击“生成新令牌”。
步骤6:为您的令牌命名。
步骤7:选择您想要授予此令牌的范围或权限。要使用您的令牌从命令行访问存储库,请选择“repo”。
步骤8:单击“生成令牌”。
将您的令牌复制到安全位置,因为一旦离开该页面,您将无法检索它,除非您创建一个新的令牌。

1
你不需要移除远程仓库,可以添加一个新的,然后拉取(如被采纳的答案所建议的)。在Linux上,最简单的解决方案是使用“gh auto login”并按照CLI提示操作即可。无需进一步步骤。如果没有“gh”,请根据你的操作系统安装它

修复错误的最佳方法是进入项目目录,打开".git"文件夹,然后打开"config"文件并删除以下行:[credential] helper = store现在尝试使用git pull或push命令,您将看到输入用户名和密码的屏幕,这次请使用GitHub令牌代替密码。 - user3512810

1
如果您不想以明文形式存储令牌(通过修改远程存储库的URL),您可以执行以下操作:
  1. 通过以下官方链接生成新的令牌。
  2. 确保通过单击以下按钮复制令牌。如果双击文本并将其复制,它将添加额外的空格,并且您将继续收到相同的错误(即使您不再使用密码,而是使用令牌)。

enter image description here


0

-6

今天下午我遇到了这个问题,并按照参考文献3中的描述,在我的电脑上用参考文献2生成的令牌替换了我的GitHub密码,解决了这个问题。

  • 参考文献1:请参阅API和Git操作的令牌身份验证要求。密码不再支持。

  • 参考文献2:因此,您应该使用本教程生成一个令牌,并将其作为凭据替换您的密码。

  • 参考文献3:如果您没有被提示输入用户名和密码,则可能是因为您的凭据已缓存在计算机上。您可以按照本教程中的描述,在钥匙串中更新您的凭据,将旧密码替换为令牌。


使用SSH和RSA密钥。ssh-keygen -t rsa -b 4096 -C“github_account_email”。这将生成两个RSA密钥,其中一个带有.pub扩展名,请将其放入GitHub作为公共令牌,并将私有令牌保留在本地计算机中,从现在开始,每当您推送时,您将使用SSH代替通过https连接进行操作。 - Soumalya Bhattacharya

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