我们宣布了打算对所有经过身份验证的Git操作要求使用基于令牌的身份验证(例如,个人访问,OAuth或GitHub App安装令牌)。从2021年8月13日开始,在GitHub.com上对Git操作进行身份验证时,我们将不再接受帐户密码。
以下工作流程受影响
- 命令行Git访问
- 使用Git的桌面应用程序(不影响GitHub Desktop)
- 使用您的密码直接访问GitHub.com上的Git存储库的任何应用程序/服务
以下不受此更改的影响:
- 如果您为帐户启用了双重身份验证,则已经需要使用基于令牌或SSH的身份验证。
- 如果您使用GitHub Enterprise Server,则我们尚未宣布对本地产品的任何更改。
- 如果您维护GitHub App,则GitHub Apps不支持密码身份验证。
从2021年8月13日开始,我们将在对Git操作进行身份验证时不再接受帐户密码,并将要求使用基于令牌的身份验证,例如个人访问令牌或OAuth或GitHub App安装令牌(对于集成商)适用于GitHub.com上所有经过身份验证的Git操作。您也可以在需要的地方继续使用SSH密钥。
创建个人访问令牌
您应该使用命令行或API创建个人访问令牌来代替密码。为了安全起见,GitHub会自动删除一年未使用的个人访问令牌。
验证您的电子邮件地址(如果尚未登录)。
-
在任何页面的右上角,点击您的个人资料照片,然后点击设置。
-
在左侧边栏中,点击开发者设置。
-
在左侧边栏中,点击个人访问令牌。
-
点击生成新令牌。
-
给您的令牌一个描述性名称。
-
选择您要授予此令牌的范围或权限。要使用令牌从命令行访问存储库,请选择repo。
-
点击生成令牌。
-
单击以将令牌复制到剪贴板。出于安全原因,在您离开该页面后,您将无法再次看到该令牌。
警告:将令牌视为密码,并对其保密。使用API时,请使用令牌作为环境变量,而不是将其硬编码到程序中。
要使用您的令牌向使用SAML SSO的组织进行身份验证,请授权该令牌与SAML单点登录组织一起使用。
获得令牌后,在通过HTTPS执行Git操作时,可以输入令牌而不是密码。
例如,在命令行上,您将输入以下内容:
$ git clone https://github.com/username/repo.git
Username: your_username
Password: your_token
个人访问令牌只能用于HTTPS Git操作。如果您的存储库使用SSH远程URL,则需要将远程从SSH切换到HTTPS。
如果未提示您输入用户名和密码,则您的凭据可能会缓存在计算机上。您可以更新钥匙串中的凭据以用令牌替换旧密码。
令牌替换旧密码
通过命令行,您可以直接使用删除凭据
git credential-manager uninstall
在Git中缓存GitHub凭据
$ git config --global credential.helper wincred