目录
1. 原因
2. 解决
最近在向 github 提交代码的时候,发现不让提交了。
提示在 2021年8月13号 之后,不再支持使用账号名密码与 GitHub 进行交互,必须使用 personal access token。
1. 原因
GitHub 为了安全性考虑,在2020年7月就准备对所有需要使用身份认证的git命令切换成基于令牌的身份验证。并且从2021年8月13日开始,在 GitHub.com上对Git操作进行身份验证时将不再接受帐户密码。
这个改动只对使用用户名密码进行 GitHub 交互的用户受影响。如果你使用的是SSH,或者之前就使用的是令牌,或者使用的是 GitHub Desktop,那么不会有任何影响。
GitHub 做出这个决定主要是对于安全的考虑,明文的密码很容易被泄露,如果换成有时限的token,即使泄露了影响也会非常有限。并且可以为同一个github账号根据不同的使用途径,生成不同的token,并且随时都可以控制token的有效状态和不同token代表的权限。生成的token可随时撤销,并且令牌的随机性更高,不容易被暴力破解。最大限度的保证账号的安全性。
2. 解决
令牌,英文名叫做token,个人访问令牌英文简写为PAT。它是一种使用密码对 GitHub 进行身份验证的替代方法。
你可以将token看做是密码,不过这个token具有权限和有效时间的限制。同时为了安全起见,GitHub 会自动删除一年内未使用的个人访问令牌。
首先登录 github.com, 在我的账号下方,选择settings:
然后在左侧边栏中,点击开发人员设置:
然后选择左边的个人访问令牌,点击生成令牌按钮,就可以生成令牌了。
在创建过程中,我们需要输入和选择一些数据:
这样一个令牌就创建好了。
注意,创建好的令牌需要及时保存,因为后续也不能再从网页上查看该令牌的内容。令牌的保存需要和密码的保存一样注意安全。
因为之前我使用过密码,所以电脑上自动缓存了我的密码,所以在push时,不会出现输入密码的步骤。(如果有输入密码的步骤出现,下面的内容就不用看了,直接使用令牌登录,就可以了,同样只要第一次成功了之后,就会自动缓存下来,就不用每次都输入了)
参考:
Token authentication requirements for Git operations: https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/