提交新项目到github, 执行到push代码时,出现 fatal: Authentication failed for XXXXXX,网上有很多教程,但都没法解决我的问题,查了一下,在2021年8月13日之后,github放弃了使用账号密码授权,要使用token盾牌授权。
双重验证
打开github,登录账号,进入settings
再选择Account security, Two-factor authentication,如下图
在 “Enable two-factor authentication”,选择“Set up using an app”,再点击“continue”
在 “Authentication verification”,扫码获取6位数填入输入框,这里要注意的是:不要是要用git 自身的APP,而是要使用一个叫 “TOTP”的APP,下载是免费的,如下:
然后把revovery codes下载保存好,以后需要用到,例如忘记密码或电子邮件地址输入错误,您可以使用恢复代码访问您的帐户并更正问题。
生成token
还是进入Settings,然后在左边栏中,点击“Develop settings”
在左侧边栏中,单击 Personal access tokens(个人访问令牌)。
单击 Generate new token(生成新令牌)。
给令牌一个描述性名称。
设置有效期。
选择要授予此令牌的作用域或权限。 要使用令牌从命令行访问仓库,请选择 repo(仓库)、admin:org、delete_repo。
单击 Generate token(生成令牌)。
注意:对待密码一样对待您的令牌,确保其机密性。 使用 API 时,应将令牌用作环境变量,而不是将其硬编码到程序中。也就是token的作用和密码是一样的。
最后,在终端push代码的时候,如果需要输入username和passwork的时候,passwork的值就是token,而不是账号的密码。
参考:https://www.cnblogs.com/smh2015/p/11444415.html、
https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication
OK!