本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,转载请联系出处。
还在用账户+密码对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