作为断电的一部分,密码身份验证被暂时禁用。请改用个人访问令牌
Password authentication is temporarily disabled as part of a brownout. Please use a personal access token instead
我使用用户名密码来推送我的代码。它已经工作了几个月,但突然间我做不到并且出现了这个错误:
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.
请注意,link 没有帮助。即使使用生成的令牌也无济于事。
Moderator Note: This is part of a planned and soon-to-be permanent service change by GitHub
我今天下午遇到了这个问题,并通过用参考 2 中生成的令牌替换我计算机上的 GitHub 密码解决了这个问题,如参考 3 中所述。
参考1:见Token authentication requirements for API and Git operations。不再支持该密码。
参考2:所以你应该用this tutorial生成一个令牌,并用它来代替你的密码作为凭证。
参考 3:如果没有提示您输入用户名和密码,您的凭据可能缓存在您的计算机上。您可以更新钥匙串中的凭据,以使用 this tutorial 中所述的令牌替换旧密码。
密码验证已被 GitHub 禁用,不再受支持。创建并使用 personal access token (PAT) 而不是密码。
要遵循的步骤:
- 从钥匙串中删除 GitHub 存储的凭据。 (例如,在 Mac 上使用“Keychain Access”或在 Windows 上使用“Credential Manager”)
- 从 GitHub 生成访问令牌
设置→开发者设置→个人访问令牌→生成新令牌
- 保存令牌 - 因为它只能在那里使用一次
- 运行 命令
git fetch
(或 git push
,如果抓取不需要权限)
If on Windows, you must run this from PowerShell, not the command prompt (CMD). The command prompt consistently fails with the remote: Password authentication is temporarily disabled
message, despite identical inputs.
- 它会询问您的用户名和密码。
If it does not ask you for your username and password, you must change your Git remote URL to contain your username: https://USERNAME@github.com/repo-owner/repo-name.git
(see approach 2 for instructions on changing remote URL)
- 在询问密码时使用访问令牌而不是密码(您必须输入两次)
或者第二种方法:
- 从 GitHub 生成访问令牌:
设置→开发者设置→个人访问令牌→生成新令牌
- 在本地更新源的 URL:
git remote set-url origin https://<token>@<git_url>.git
- 拉一次:
git pull https://<token>@<git_url>.git
从 GitHub 的 developer settings
生成一个新令牌
更新遥控器URL:
git remote set-url origin https://<token>@github.com/<Git_URL>
拉一次:
git pull https://<token>@<Git_URL>.git
你很高兴。
适用于 macOS,Windows 和 Linux
解决方案 1
删除现有存储库(如果您有任何当前更改,请对其进行备份):
mv my-repo my-repo.backup
创建 SSH 密钥并将其添加到 GitHub(参见 GitHub documentation)
克隆 SSH 存储库:git clone git@github.com:group/repo-name.git
方案二(推荐方案)
git remote remove origin
您必须添加访问令牌(参见 GitHub documentation 生成令牌)
git remote add origin https://<token>@<git_url>.git
git pull https://<token>@<git_url>.git
使用Visual Studio Code
- 删除您的 GitHub 访问权限:
git credential-osxkeychain erase
⏎ host=github.com
⏎ protocol=https
git push
或 git pull
它将通过模式对话框提示您。单击允许并按照流程进行操作。
Ubuntu 服务器和现有 Git 存储库的解决方案
删除密码:
git config --global --unset user.password;
git config --local --unset user.password;
改变remote.origin.url。将 替换为您的 GitHub 用户名:
git config --global --replace-all remote.origin.url "https://<username>@github.com/PPEProjects/smile-eyes-be.git";
git config --local --replace-all remote.origin.url "https://<username>@github.com/PPEProjects/smile-eyes-be.git"
Pull/push
git pull
git push origin HEAD:develop
生成的个人访问令牌
如果您使用的是 macOS
首先请删除钥匙串中的所有 GitHub 凭据,然后请生成您的令牌用作密码(由于 GitHub 安全策略):GitHub* → 设置 → 开发人员设置 → 个人访问令牌.
尝试推送或拉取一些最新的东西 to/from 您的存储库。然后 Git 会要求您输入用户名和密码。输入您的用户名和从 GitHub 生成的令牌。
macOS 解决方案
我只是按照以下说明操作,这解决了我的问题。
- 为 GitHub 生成个人访问令牌。 Process to generate token
- 打开您的钥匙串访问。
- 搜索 github.com 并双击它。
- 使用您最近生成的密钥更新密码。
N.B:我不确定这是否适用于其他操作系统用户。
如果您使用的是 HTTPS
在您的 token settings as indicated in the documentation
中生成一个令牌
如果存储库已经存在,则您必须按照以下格式更改远程 URL:https://<username>:<token>@github.com/<repository_url>
git remote remove origin
git remote add origin https://<USERNAME>:<TOKEN>@<GIT_URL>.git
git pull # Verify
如果您克隆存储库
git clone https://<USERNAME>:<TOKEN>@<GIT_URL>.git
试试这个(对我有用):
- 使用本指南生成 SSH 密钥:Generating a new SSH key
- 删除所有使用 HTTPS 的旧遥控器
git remote remove origin
;
- 使用 SSH 引用添加新的远程(您可以使用存储库中的“代码”按钮获取它,然后按“ssh”)。
之前接受的答案 完成了这项工作,但它并不安全,因为我们以纯文本形式存储令牌。
在我看来,将其存储在钥匙串中是更好的方法。
Visual Studio代码请阅读。
对于Windows:
你可以试试下面的@Venryx评论,但我没有测试过。
对于Mac:
我现在刚遇到这个问题
按照建议,我去了 development settings by following this URL 并生成了一个令牌。
然后我在 Mac:
中访问我的钥匙链
我删除了(全部)GitHub
的行
现在我去了终端并推送了伪代码
git push
终端要求我输入我的帐户的电子邮件和密码。
我输入了我的电子邮件,然后输入了我之前生成的令牌作为密码。
它又开始工作了。
-
在您的 Visual Studio Code 命令行上:
git config --global credential.helper [YOUR_TOKEN]
GitHub 正在删除用户名密码验证
其他人提到的替代方法:
您可以安装和配置 GitHub CLI. It is much better to set up using OAuth。无需从钥匙串中手动删除凭据。
在 Homebrew (brew
) 的 macOS 上,安装更简单:
运行 brew install gh
并遵循以下内容:
- 你想登录什么账号?GitHub.com,选择GitHub
- Git 操作的首选协议是什么? 选择 HTTPS
- 使用您的 GitHub 凭据验证 Git? 选择 YES
- 您想如何验证 GitHub CLI?选择使用网络浏览器登录
- 复制终端中显示的代码 ->
B7C1-8E67
- 按 Enter 在浏览器中打开 github.com
- 使用浏览器进行身份验证
完成。
像往常一样开始使用 Git 命令。
快速热修复
转到Personal access tokens并重新生成最后一个令牌:
如果您使用的是 HTTPS 版本而不是 SSH,则会出现此错误,因为 GitHub 正在删除 HTTPS 方法来维护存储库。
- 如果您还没有通过
ssh-keygen
生成 SSH 密钥并继续按 Enter 直到结束
cat ~/.ssh/id_rsa.pub
- 复制结果
- 访问https://github.com/settings/keys
- 按新建 SSH 密钥 并将密钥粘贴到文本框中。标题可以随便起
cd <into your project's directory>
git remote set-url origin git@github.com:<username-here>/<repository-name-here>.git
一切顺利!
以下步骤对我来说非常有效
要遵循的步骤:
从GitHub、设置生成访问令牌→开发人员设置→个人访问令牌 → 生成新令牌
保存令牌 - 因为它只能在那里使用一次
在系统中搜索.git-credential文件
在该文件中用户名后使用访问令牌而不是密码。
首先来自post:Token authentication requirements for API and Git operations,它说
Mid-2021 – Personal access or OAuth tokens will be required for all authenticated Git operations.
所以你需要使用personal access token(PAT)来推送:
1 获取您的个人访问令牌
在此处登录以访问存储库并添加新的个人访问令牌:Personal access tokens。生成一个并妥善保管令牌(离开后无法显示)。
(在Android Studio中,您需要获得“repo”、“gist”和“read:org”的权限)
2 使用个人访问令牌推送
获得令牌后,您可以使用如下命令推送:
git push https://[personal access token]@github.com/[user name]/[repository Name].git
您所要做的就是使用生成的令牌而不是传统密码:
旧方法使用密码:
git clone https://github.com/username/repo.git
Username: your_username
Password: your_password
使用令牌的新方法:
git clone https://github.com/username/repo.git
Username: your_username
Password: your_token
第 1 步:从 GitHub
生成 API 令牌
- 阅读此文档以创建个人访问令牌:Configuring two-factor authentication
第 2 步:用新生成的令牌替换您之前缓存的密码
- 如此处所述,您必须修改缓存在您电脑中的本地 GitHub 登录凭据:
Remove credentials from Git
您可以通过 GitHub 控制面板生成 PAT(个人访问令牌)。
第 1 步:登录您的 GitHub 帐户。
第 2 步:在任意页面的右上角,单击您的个人资料照片,然后单击“设置”。
第 3 步:在左侧边栏中,单击开发人员设置。
第 4 步:在左侧边栏中,单击个人访问令牌。
第 5 步:单击生成新令牌。
第 6 步:为您的令牌指定一个描述性名称。
第 7 步:Select 范围或权限。您想要授予此令牌。要使用您的令牌从命令行访问存储库,
select repo.
第 8 步:单击生成令牌。
将您的令牌复制到一个安全的位置,因为一旦您离开该页面,您将无法取回它,除非您创建一个新的。
这是一个简单解决方案:
- 转到GitHub → 设置 → 开发人员设置 → 个人访问令牌.重新生成您的令牌并复制它。
- 在您的任何本地存储库上,当
git push
时,输入您的用户名,密码是生成的令牌
无需为每个 HTTPS Git 操作手动输入您的 令牌,您可以使用 Git 客户端缓存您的令牌。
- 在终端中,输入以下内容:
# Set Git to use the credential memory cache
git config --global credential.helper cache
- 要更改默认密码缓存超时,请输入以下内容:
# Set the cache to timeout after 1 hour (setting is in seconds)
git config --global credential.helper 'cache --timeout=3600'
还有一个非常简洁的脚本有助于将 HTTPS 克隆的 Git 存储库转换为使用 ssh 协议,而无需删除和克隆 Git 存储库:
您不需要移除遥控器。添加一个新的然后拉(按照接受的答案的建议)。
对我有用的最简单的解决方案(在 Linux 上)是使用 gh auto login
并遵循 CLI 说明。不需要进一步的步骤。
如果您没有 gh
、install it following this link,取决于您的 OS。
我试了各种方法,终于对我有用了。由于这个错误,我无法推送我的存储库,所以请至少尝试一次!
_____________________________generate 个人访问令牌:
单击此处并生成个人访问令牌。这太容易了。
现在只需借助 PAT 而非密码和用户名推送即可___________________
将更改推送到您的存储库:
git push https://[Personal Access Token]@github.com/[User Name]/[Repository Name].git
如果您不想以纯文本形式存储您的令牌(通过修改远程仓库的 URL),您可以这样做:
- 通过following the official link
生成一个新令牌
- 确保通过单击以下按钮复制令牌。如果您双击文本并复制它,它会添加一个额外的 space 并且您将不断收到相同的错误(即使您不再使用密码,而是使用令牌)
我在 Visual Studio 代码中尝试推送时收到此错误...但是我打开终端并使用用户名和密码推送没有问题。
这可能是您可以尝试的。
这对我有用:
生成 personal access token(不要忘记复制令牌)
打开您的 Keychain Access (Mac) 或 Credential Manager (Windows)。
用新的 personal access token in KeyChain Access/Credential Manager
更新 GitHub 密码
最后一步:执行 Git 克隆(确保将存储库克隆到正确的目录位置)
git clone https://github.com/username/repo.git
Username: your_username
Password: your_token
在我的例子中,它没有提示我输入用户名和密码,因为它已经在 Keychain Access.
中更新了
我使用用户名密码来推送我的代码。它已经工作了几个月,但突然间我做不到并且出现了这个错误:
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.
请注意,link 没有帮助。即使使用生成的令牌也无济于事。
Moderator Note: This is part of a planned and soon-to-be permanent service change by GitHub
我今天下午遇到了这个问题,并通过用参考 2 中生成的令牌替换我计算机上的 GitHub 密码解决了这个问题,如参考 3 中所述。
参考1:见Token authentication requirements for API and Git operations。不再支持该密码。
参考2:所以你应该用this tutorial生成一个令牌,并用它来代替你的密码作为凭证。
参考 3:如果没有提示您输入用户名和密码,您的凭据可能缓存在您的计算机上。您可以更新钥匙串中的凭据,以使用 this tutorial 中所述的令牌替换旧密码。
密码验证已被 GitHub 禁用,不再受支持。创建并使用 personal access token (PAT) 而不是密码。
要遵循的步骤:
- 从钥匙串中删除 GitHub 存储的凭据。 (例如,在 Mac 上使用“Keychain Access”或在 Windows 上使用“Credential Manager”)
- 从 GitHub 生成访问令牌 设置→开发者设置→个人访问令牌→生成新令牌
- 保存令牌 - 因为它只能在那里使用一次
- 运行 命令
git fetch
(或git push
,如果抓取不需要权限)If on Windows, you must run this from PowerShell, not the command prompt (CMD). The command prompt consistently fails with the
remote: Password authentication is temporarily disabled
message, despite identical inputs. - 它会询问您的用户名和密码。
If it does not ask you for your username and password, you must change your Git remote URL to contain your username:
https://USERNAME@github.com/repo-owner/repo-name.git
(see approach 2 for instructions on changing remote URL) - 在询问密码时使用访问令牌而不是密码(您必须输入两次)
或者第二种方法:
- 从 GitHub 生成访问令牌: 设置→开发者设置→个人访问令牌→生成新令牌
- 在本地更新源的 URL:
git remote set-url origin https://<token>@<git_url>.git
- 拉一次:
git pull https://<token>@<git_url>.git
从 GitHub 的 developer settings
生成一个新令牌更新遥控器URL:
git remote set-url origin https://<token>@github.com/<Git_URL>
拉一次:
git pull https://<token>@<Git_URL>.git
你很高兴。
适用于 macOS,Windows 和 Linux
解决方案 1
删除现有存储库(如果您有任何当前更改,请对其进行备份):
mv my-repo my-repo.backup
创建 SSH 密钥并将其添加到 GitHub(参见 GitHub documentation)
克隆 SSH 存储库:
git clone git@github.com:group/repo-name.git
方案二(推荐方案)
git remote remove origin
您必须添加访问令牌(参见 GitHub documentation 生成令牌)
git remote add origin https://<token>@<git_url>.git
git pull https://<token>@<git_url>.git
使用Visual Studio Code
- 删除您的 GitHub 访问权限:
git credential-osxkeychain erase
⏎ host=github.com
⏎ protocol=https
git push
或git pull
它将通过模式对话框提示您。单击允许并按照流程进行操作。
Ubuntu 服务器和现有 Git 存储库的解决方案
删除密码:
git config --global --unset user.password;
git config --local --unset user.password;
改变remote.origin.url。将
git config --global --replace-all remote.origin.url "https://<username>@github.com/PPEProjects/smile-eyes-be.git";
git config --local --replace-all remote.origin.url "https://<username>@github.com/PPEProjects/smile-eyes-be.git"
Pull/push
git pull
git push origin HEAD:develop
生成的个人访问令牌
如果您使用的是 macOS
首先请删除钥匙串中的所有 GitHub 凭据,然后请生成您的令牌用作密码(由于 GitHub 安全策略):GitHub* → 设置 → 开发人员设置 → 个人访问令牌.
尝试推送或拉取一些最新的东西 to/from 您的存储库。然后 Git 会要求您输入用户名和密码。输入您的用户名和从 GitHub 生成的令牌。
macOS 解决方案
我只是按照以下说明操作,这解决了我的问题。
- 为 GitHub 生成个人访问令牌。 Process to generate token
- 打开您的钥匙串访问。
- 搜索 github.com 并双击它。
- 使用您最近生成的密钥更新密码。
N.B:我不确定这是否适用于其他操作系统用户。
如果您使用的是 HTTPS
在您的 token settings as indicated in the documentation
中生成一个令牌如果存储库已经存在,则您必须按照以下格式更改远程 URL:
https://<username>:<token>@github.com/<repository_url>
git remote remove origin git remote add origin https://<USERNAME>:<TOKEN>@<GIT_URL>.git git pull # Verify
如果您克隆存储库
git clone https://<USERNAME>:<TOKEN>@<GIT_URL>.git
试试这个(对我有用):
- 使用本指南生成 SSH 密钥:Generating a new SSH key
- 删除所有使用 HTTPS 的旧遥控器
git remote remove origin
; - 使用 SSH 引用添加新的远程(您可以使用存储库中的“代码”按钮获取它,然后按“ssh”)。
之前接受的答案
在我看来,将其存储在钥匙串中是更好的方法。
Visual Studio代码请阅读
对于Windows:
你可以试试下面的@Venryx评论,但我没有测试过。
对于Mac:
我现在刚遇到这个问题
按照建议,我去了 development settings by following this URL 并生成了一个令牌。
然后我在 Mac:
中访问我的钥匙链我删除了(全部)GitHub
的行现在我去了终端并推送了伪代码
git push
终端要求我输入我的帐户的电子邮件和密码。
我输入了我的电子邮件,然后输入了我之前生成的令牌作为密码。
它又开始工作了。
在您的 Visual Studio Code 命令行上:
git config --global credential.helper [YOUR_TOKEN]
GitHub 正在删除用户名密码验证
其他人提到的替代方法:
您可以安装和配置 GitHub CLI. It is much better to set up using OAuth。无需从钥匙串中手动删除凭据。
在 Homebrew (brew
) 的 macOS 上,安装更简单:
运行 brew install gh
并遵循以下内容:
- 你想登录什么账号?GitHub.com,选择GitHub
- Git 操作的首选协议是什么? 选择 HTTPS
- 使用您的 GitHub 凭据验证 Git? 选择 YES
- 您想如何验证 GitHub CLI?选择使用网络浏览器登录
- 复制终端中显示的代码 ->
B7C1-8E67
- 按 Enter 在浏览器中打开 github.com
- 使用浏览器进行身份验证
完成。
像往常一样开始使用 Git 命令。
快速热修复
转到Personal access tokens并重新生成最后一个令牌:
如果您使用的是 HTTPS 版本而不是 SSH,则会出现此错误,因为 GitHub 正在删除 HTTPS 方法来维护存储库。
- 如果您还没有通过
ssh-keygen
生成 SSH 密钥并继续按 Enter 直到结束 cat ~/.ssh/id_rsa.pub
- 复制结果- 访问https://github.com/settings/keys
- 按新建 SSH 密钥 并将密钥粘贴到文本框中。标题可以随便起
cd <into your project's directory>
git remote set-url origin git@github.com:<username-here>/<repository-name-here>.git
一切顺利!
以下步骤对我来说非常有效
要遵循的步骤:
从GitHub、设置生成访问令牌→开发人员设置→个人访问令牌 → 生成新令牌
保存令牌 - 因为它只能在那里使用一次
在系统中搜索.git-credential文件
在该文件中用户名后使用访问令牌而不是密码。
首先来自post:Token authentication requirements for API and Git operations,它说
Mid-2021 – Personal access or OAuth tokens will be required for all authenticated Git operations.
所以你需要使用personal access token(PAT)来推送:
1 获取您的个人访问令牌
在此处登录以访问存储库并添加新的个人访问令牌:Personal access tokens。生成一个并妥善保管令牌(离开后无法显示)。
(在Android Studio中,您需要获得“repo”、“gist”和“read:org”的权限)
2 使用个人访问令牌推送
获得令牌后,您可以使用如下命令推送:
git push https://[personal access token]@github.com/[user name]/[repository Name].git
您所要做的就是使用生成的令牌而不是传统密码:
旧方法使用密码:
git clone https://github.com/username/repo.git
Username: your_username
Password: your_password
使用令牌的新方法:
git clone https://github.com/username/repo.git
Username: your_username
Password: your_token
第 1 步:从 GitHub
生成 API 令牌- 阅读此文档以创建个人访问令牌:Configuring two-factor authentication
第 2 步:用新生成的令牌替换您之前缓存的密码
- 如此处所述,您必须修改缓存在您电脑中的本地 GitHub 登录凭据: Remove credentials from Git
您可以通过 GitHub 控制面板生成 PAT(个人访问令牌)。
第 1 步:登录您的 GitHub 帐户。
第 2 步:在任意页面的右上角,单击您的个人资料照片,然后单击“设置”。
第 3 步:在左侧边栏中,单击开发人员设置。
第 4 步:在左侧边栏中,单击个人访问令牌。
第 5 步:单击生成新令牌。
第 6 步:为您的令牌指定一个描述性名称。
第 7 步:Select 范围或权限。您想要授予此令牌。要使用您的令牌从命令行访问存储库, select repo.
第 8 步:单击生成令牌。
将您的令牌复制到一个安全的位置,因为一旦您离开该页面,您将无法取回它,除非您创建一个新的。
这是一个简单解决方案:
- 转到GitHub → 设置 → 开发人员设置 → 个人访问令牌.重新生成您的令牌并复制它。
- 在您的任何本地存储库上,当
git push
时,输入您的用户名,密码是生成的令牌
无需为每个 HTTPS Git 操作手动输入您的 令牌,您可以使用 Git 客户端缓存您的令牌。
- 在终端中,输入以下内容:
# Set Git to use the credential memory cache
git config --global credential.helper cache
- 要更改默认密码缓存超时,请输入以下内容:
# Set the cache to timeout after 1 hour (setting is in seconds)
git config --global credential.helper 'cache --timeout=3600'
还有一个非常简洁的脚本有助于将 HTTPS 克隆的 Git 存储库转换为使用 ssh 协议,而无需删除和克隆 Git 存储库:
您不需要移除遥控器。添加一个新的然后拉(按照接受的答案的建议)。
对我有用的最简单的解决方案(在 Linux 上)是使用 gh auto login
并遵循 CLI 说明。不需要进一步的步骤。
如果您没有 gh
、install it following this link,取决于您的 OS。
我试了各种方法,终于对我有用了。由于这个错误,我无法推送我的存储库,所以请至少尝试一次!
_____________________________generate 个人访问令牌:
单击此处并生成个人访问令牌。这太容易了。
现在只需借助 PAT 而非密码和用户名推送即可___________________
将更改推送到您的存储库:
git push https://[Personal Access Token]@github.com/[User Name]/[Repository Name].git
如果您不想以纯文本形式存储您的令牌(通过修改远程仓库的 URL),您可以这样做:
- 通过following the official link 生成一个新令牌
- 确保通过单击以下按钮复制令牌。如果您双击文本并复制它,它会添加一个额外的 space 并且您将不断收到相同的错误(即使您不再使用密码,而是使用令牌)
我在 Visual Studio 代码中尝试推送时收到此错误...但是我打开终端并使用用户名和密码推送没有问题。
这可能是您可以尝试的。
这对我有用:
生成 personal access token(不要忘记复制令牌)
打开您的 Keychain Access (Mac) 或 Credential Manager (Windows)。
用新的 personal access token in KeyChain Access/Credential Manager
更新 GitHub 密码最后一步:执行 Git 克隆(确保将存储库克隆到正确的目录位置)
git clone https://github.com/username/repo.git Username: your_username Password: your_token
在我的例子中,它没有提示我输入用户名和密码,因为它已经在 Keychain Access.
中更新了