萧箫 丽翔 凹非寺
还在用帐户+公钥对GitHub上的Git操作方式展开身份校正?
急忙整座token(副本)或SSH公钥吧!

8月14号0点(8月13日9:00 PST)已经开始,在GitHub上继续执行Git操作方式就会引致失利。
GitHub非官方则表示,而此举措是为的是提升Git操作方式的可靠性,避免公钥撞库等事出现。
什么样操作方式会受负面影响?
单纯而言,假如你还在用账密校正Git操作方式,那些行为单厢受到负面影响:
配置文件Git出访选用Git的桌面应用程序(GitHub Desktop不受负面影响)账密出访GitHub上Git repo的一切应用程序/服务那些用户不会受负面影响:
已经选用token或SSH公钥方式校正,即启用双因素身份校正(2FA)的用户使用GitHub Enterprise Server本地产品的用户(该产品尚未对此展开更改)使用GitHub App的用户,此前已经不支持账密校正当然,大部分经常使用Git的用户应该都已经知道这件事了。
在今年6月30号(15~18时)、7月1号(0~3时)、7月28号(15~18时)和29号(0~3时),GitHub已经针对这件事展开了预演,所有Git操作方式都被要求用token或SSH公钥校正。
现在,这项举措已经变成一个永久举措。
GitHub究竟为什么要这样做呢?
token和SSH公钥安全在哪里?
首先需要了解,只用帐户和公钥展开身份校正会有什么隐患。
互联网上,每天都有大量网站遭受骇客攻击,引致数据外泄,那些数据中就包括不少用户的账号公钥。
拿到账号公钥后,骇客会用它们试着登录其他网站,也就是所谓的公钥撞库。
单纯而言,假如你ABC网站用的是一套账户公钥,在A网站的公钥被泄露后,BC网站也可能会被盗号。

为的是避免公钥撞库,网站会采取更多手段校正身份信息,像GitHub就推出了双因素身份校正、登录警报、设备认证、防用泄露公钥及支持WebAuth等措施。
双因素身份校正,是指在秘密信息(公钥等)、个人物品(身份证等)、生理特征(指纹/虹膜/人脸等)这三种因素中,同时用两种因素展开认证的过程。
现在,GitHub已经开始强制用户选用token或SSH公钥进行身份校正。相比于账密,这两者的可靠性显然更高:
唯一性:仅限GitHub使用,根据设备/使用次数生成可撤销性:可随时被单独撤销,其他凭证不受负面影响区域性:使用范围可控,只允许在部分出访活动中继续执行随机性:不受撞库负面影响,比账密复杂度更高那么,token和SSH公钥之间,哪个更合适呢?
虽然目前GitHub非官方推荐的是token,因为它设置更为单纯,不过相比之下,SSH公钥的可靠性要更高一些。
还没有设置token或SSH公钥的Git用户,可以戳非官方教程整起来了~
GitHub设置教程:[1]https://docs.github.com/en/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token[2]https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent
参考链接:[1]https://github.blog/changelog/2021-08-12-git-password-authentication-is-shutting-down/[2]https://www.theregister.com/2021/08/12/git_proxyshell_gigabyte/