GitHub反黑客新措施:放弃账户密码验证Git操作,改用令牌或SSH密钥。GitHub上的Git操作还在使用账号+密码认证?获取整个令牌(token)或SSH密钥!8月14日0点开始(8月13日太平洋标准时间9点),在GitHub上执行Git操作会失败。GitHub官方表示,此举是为了提高Git操作的安全性,防止密码冲突等事情的发生。哪些操作受到影响?简单来说,如果你还在使用账号密码验证Git操作,这些行为会受到影响:命令行Git访问使用Git的桌面应用程序(GitHubDesktop不受影响)账号密码访问Git上的所有应用程序/appGitHub上的repo为这些用户提供服务不会受到影响:使用令牌或SSH密钥进行身份验证的用户,即启用了双因素身份验证(2FA)的用户使用GitHubEnterpriseServer本地产品的用户(该产品尚未改了这个)使用GitHubAppUsers,之前不支持账号密码验证。当然,大多数经常使用Git的用户应该都知道这一点。今年6月30日(15-18点)、7月1日(0-3点)、7月28日(15-18点)和29日(0-3点),GitHub已经解决了这件事进行了排练,所有的Git操作都需要通过token或SSHkey进行认证。现在,此举已成为永久性措施。GitHub到底为什么要这么做?令牌和SSH密钥在哪里安全?首先,您需要了解仅使用帐号和密码进行身份验证的隐患。在互联网上,每天都有大量的网站被黑客攻击,导致数据泄露,其中就包括很多用户的账号密码。黑客获取账户密码后,会利用它们尝试登录其他网站,这就是所谓的密码崩溃。简单来说,如果你的ABC网站使用了一套账号密码,A网站的密码泄露后,BC网站也有可能被黑。为了防止密码与数据库发生冲突,网站会采取更多的措施来验证身份信息。例如,GitHub推出了双因素身份验证、登录警报、设备身份验证、防止密码泄露以及支持WebAuth等措施。双因素认证是指在秘密信息(密码等)、个人物品(身份证等)、生理特征(指纹/虹膜/面等)。现在,GitHub开始强制用户使用令牌或SSH密钥进行身份验证。与账号密文相比,两者的安全性明显更高:唯一性:仅GitHub使用,根据设备/使用次数生成可撤销性:可随时单独撤销,其他凭证不受影响区域性:使用范围可控,只允许部分访问活动具有随机性:不受撞库影响,比账户加密更复杂那么,token和SSHkey哪个更合适呢?虽然GitHub官方推荐使用token,因为它更容易设置,但相比之下,SSH密钥更安全。没有设置token或SSHkey的Git用户,可以戳官方教程完成~GitHub设置教程:[1]https://docs.github.com/en/github/authenticating-to-github/keeping-你的-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
