【送书活动四期】被GitHub 要求强制开启 2FA 双重身份验证,我该怎么办?
记得是因为fork了OpenZeppelin/openzeppelin-contracts的项目,之后就被GitHub 要求强制开启 2FA 双重身份验证了,一拖再拖,再过几天帐户操作将受到限制了,只能去搞一下了
目录
- 2FA是什么
- 为什么要开启 2FA 验证
- GitHub 欲在整个平台推动 2FA!
- 如何 配置2FA
- 找到2FA配置页面
- 2FA 配置操作
- Set up using an app认证
- 保存 recovery codes
- 2FA 配置成功
- 双重身份验证更多信息
- 书籍推荐
- 书籍名称:《细说Python编程从入门到科学计算》
- 内容介绍
- 适合人群
- 如何领书
- 自主购买
- 最后
为了提高软件供应链的整体安全性,GitHub 重磅宣布,在 2023 年之前,所有使用 GitHub 平台存储代码、做贡献的开发者都需要启动一种或多种形式的双因素身份验证(2FA),否则将无法正常使用该平台。
对此,GitHub 首席安全官(CSO)Mike Hanley 表示,软件供应链的起点是开发者。开发者账户经常会成为社会工程和账户接管的目标,保护开发者免受这些类型的攻击是保护供应链安全的第一步,也是最关键的一步。

2FA是什么
2FA 的英文全名是 Two-factorauthentication,即双因子认证,或称为双重身份验证,是一种最常用多因子认证(MFA)方式。
顾名思义,2FA是一种身份验证方法,它要求用户提供密码和另一个认证因子或者至少提供两个认证因子(代替密码),才能访问网站、应用程序或网络。例如,网上银行应用程序要求用户输入密码和通过短信发送到手机上的验证码时,就使用了2FA。
简单说:双重身份验证 (2FA) 是登录网站或应用时使用的额外保护层。
由于破解第二个认证因子需要付出更多,并且其他类型的因子更难以窃取或伪造,因此 2FA 可提高帐户安全性,并更好地保护组织及其用户免遭未经授权的访问。
为什么要开启 2FA 验证
简单来说就是为了安全,我们常遇到的很多安全漏洞并非是来自非常复杂的攻击事件亦或是零日漏洞,相反,往往是涉及低成本的攻击,如社会工程、密码泄露等。
据 GitHub 博客报道,2021 年 11 月,由于未启用 2FA 的开发者账户遭到入侵,有不少 npm 包被接管。此外,早期也有不少安全研究人员透露,其可以直接访问 14% 的 npm 包(或者间接访问 54% 的包)。 还有媒体报道,曾被黑客入侵的
Microsoft 账户中,有 99.9% 未启用 2FA。 Mike Hanley表示,防止低成本攻击的最好方法是采取基于密码的基本认证方法之外的一些措施,当前 GitHub除了要求用户名、密码登录之外,还要求基于电子邮件的设备验证。如今,2FA 将是下一道防线。
虽然有很多场景已经验证了 2FA 的有效性,但 2FA 在整个软件生态系统中的采用率仍然很低。
GitHub 官方给出的解释
GitHub 是软件供应链的核心,确保软件供应链的安全要从保护开发人员开始。因此我们正在推进 2FA计划,通过提高账户安全性来保护软件开发。开发人员的账户是社会工程和账户接管(ATO)的常见目标。保护开源生态系统的开发人员和消费者免受此类攻击是确保供应链安全的第一步,也是最关键的一步。
GitHub 欲在整个平台推动 2FA!
从 2023 年 3 月开始到 2023 年底,GitHub 将逐渐开始要求在 GitHub.com 上贡献代码的所有用户启用一种或多种形式的双因素身份验证 (2FA)。 如果你在符合条件的组中,当选择该组进行注册时,将收到一封通知电子邮件,该电子邮件标志着 45 天的 2FA 注册期的开始,并且你会看到要求你在 GitHub.com 上注册 2FA 的横幅。 如果未收到通知,则表示你不是需要启用 2FA 的组的成员,但我们强烈建议启用 2FA。
我是在fork了OpenZeppelin/openzeppelin-contracts的项目,之后就被GitHub 要求强制开启 2FA 双重身份验证了,如下
GitHub users are now required to enable two-factor authentication as an additional security measure. Your activity on GitHub includes you in this requirement. You will need to enable two-factor authentication on your account before December 15, 2023, or be restricted from account actions.

大意是,GitHub 用户现在需要启用 2FA 双因素身份验证作为附加的安全措施,您需要在2023年12月15日之前在您的帐户上启用双因素身份验证,否则将被限制进行帐户操作。
GitHub 表示将渐进式推进 2FA 要求,首先从开发人员和管理员开始。这些用户会收到电子邮件提醒,会在网页版 GitHub 上看到横幅提示。开发人员有 45 天的时间来设置 2FA,之后会有一周的缓冲期,如果开发人员还不设置 2FA 将会限制账户访问。
确实我在11月24号就收到了,邮件通知,但是我能拖啊,一直拖到今天12月8号才要去搞一下

如何 配置2FA
看来不配置2FA是不行的,除非不用GitHub了,但是这个不现实啊
找到2FA配置页面
- 登录 GitHub
- 点击右上方头像
- 下拉列表中选择 Settings 进入设置页面
- 在该页面左侧点击 Password and authentication 选项卡
- 看到一个 Two-factor authentication 设置项,点击“Enable two-factor authentication”按钮
- 进入 2FA 配置页面。
可以看到如下页面:

2FA 配置操作
Set up using an app认证
目前 GitHub 支持 Set up using an app 和 Set up using SMS两种认证方式,由于中国大陆的手机号码无法接收短信,因此我们选择第一种方式,即使用 app 进行认证。页面如下

- 官方推荐的密码管理 app 包括 1Password、Authy、Microsoft Authenticator 等,但都是国外软件
- 当然你也可以使用浏览器插件来完成
- 国内可以使用“神锁离线版”等 app,我就是使用的神锁离线版APP
神锁离线版APP如下

以 神锁离线版APP 为例,打开app,扫描页面上的二维码即可生成一个 2FA 码。
⚠️:如果您使用的 app 或浏览器插件不能使用摄像头扫描,可以点击 enter this secret 获取一串字符,并将这串字符输入到 app 或浏览器插件,这样也能生成 2FA 码。
保存 recovery codes
验证成功后,点击 Continue 按钮进入下一步,在这里你需要保存你的 recovery codes,点击 Download 下载 github-recovery-codes.txt 文件。
一定要保存好!!!

2FA 配置成功
最后,点击“I have saved my recovery codes”按钮,一切顺利将出现如下页面,说明 2FA 已经配置成功。
下次登录 GitHub 的时候,就会要求您进行 2FA 验证才能登录成功。

双重身份验证更多信息
关于GitHub双重身份验证的更多信息可以参考下面链接
- 关于双重身份验证
- 在你的组织中要求进行双因素身份验证
- Raising the bar for software security: GitHub 2FA begins March 13
书籍推荐
- 由业界专家执笔:
本书由两位工作多年的博士执笔他们从事人工智能及相关行业多年,拥有丰富的实践经验,对于初次接触Python编程的读者来说,他们通俗易懂、由浅入深的讲解,会让读者非常容易接受和理解。- 循序渐进,涉及面更广更深入:
从基础开始,按编程规范讲解Python编程的方方面面,适合初学者入门针对每一个知识点,扩展性地讲解了更深入的知识便于有能力的读者了解更深入的内容。- 知识点辅以丰富示例:
学习编程,不能纸上谈兵,边学边练,勤于上机练习,才能事半功倍,为此,本书几乎所有知识点都提供了示例,全书精心设计了超过600个示例,读者跟着这些示例练习,很快会成为编程高手。- 助力进入AI领域的科学计算工具:
本书还详尽细致地介绍了广泛用于人工智能领域的科学计算工具NumPy对于想进入AI行业的大学生、想转型到AI领域的开发人员和技术人员,掌握该工具很有必要。
书籍名称:《细说Python编程从入门到科学计算》

内容介绍
- 详尽细致地阐述Python编程的基础知识和高级技巧,并以大量示例代码进行实践,同时还介绍人工智能领域广泛使用的科学计算工具NumPy。
- 全书分为两篇,共19章。第1篇(第1~11章)为基础知识,主要讲解Python的编译环境、入门知识、字符串、容器、函数、循环、条件选择、模块、类、类的特殊成员、文件;第2篇(第12~19章)为高级应用,包括异常处理、日期和时间、测试代码、程序打包、使用数据库、网络编程、图形用户界面、科学计算等内容。全书知识点丰富,辅之以示例演示,读者可以边学边练,快速掌握。
- 还提供了16小时共151节微课教学视频,读者扫码即可观看学习,免费提供的示例源码文件可直接调用,方便上机操练。
- 深入浅出,内容新颖,涉及面广,适合想要学习Python编程的各层次读者。
适合人群
- Python编程初学者、新手,各行各业的技术人员以及对Python感兴趣的人员。
- 高中生、大学生、研究生、理科生、文科生,所有想进入数据科学和AI领域的人员。
- 培训机构、企业内训、高等院校、大中专学校的员工、老师和学生。
如何领书
————————————————
本次本篇文章送书 🔥2-3本 评论区抽2-3位小伙伴送书
📆 活动时间:截止到 2023-12-14 19:00:00
🎁抽奖方式:利用网络公开的在线抽奖工具进行抽奖
💡参与方式:关注、点赞、收藏,评论 “入局AI,我学Python”
根据文章阅读量的多少来安排送书的本数。
————————————————
🔥 注:活动结束后,会私信中奖粉丝的,各位注意查看私信哦!
自主购买
小伙伴也可以访问链接进行自主购买哦~
直达京东购买链接🔗:《细说Python编程从入门到科学计算》
最后
- 好看的灵魂千篇一律,有趣的鲲志一百六七!
- 如果觉得文章还不错的话,可以点赞+收藏+关注 支持一下,鲲志的主页 还有很多有趣的文章,欢迎小伙伴们前去点评
- 如果有什么需要改进的地方还请大佬指出❌

相关文章:
【送书活动四期】被GitHub 要求强制开启 2FA 双重身份验证,我该怎么办?
记得是因为fork了OpenZeppelin/openzeppelin-contracts的项目,之后就被GitHub 要求强制开启 2FA 双重身份验证了,一拖再拖,再过几天帐户操作将受到限制了,只能去搞一下了 目录 2FA是什么为什么要开启 2FA 验证GitHub 欲在整个平台…...
GO设计模式——13、享元模式(结构型)
目录 享元模式(Flyweight Pattern) 享元模式的核心角色: 优缺点 使用场景 注意事项 代码实现 享元模式(Flyweight Pattern) 享元模式(Flyweight Pattern)它通过共享对象来减少内存使用和提…...
Linux 网络协议
1 网络基础 1.1 网络概念 网络是一组计算机或者网络设备通过有形的线缆或者无形的媒介如无线,连接起来,按照一定的规则,进行通讯的集合( 缺一不可 )。 5G的来临以及IPv6的不断普及,能够进行联网的设备将会是越来越多(…...
【C语言】7-32 刮刮彩票 分数 20
7-32 刮刮彩票 分数 20 全屏浏览题目 切换布局 作者 DAI, Longao 单位 杭州百腾教育科技有限公司 “刮刮彩票”是一款网络游戏里面的一个小游戏。如图所示: 每次游戏玩家会拿到一张彩票,上面会有 9 个数字,分别为数字 1 到数字 9…...
交叉验证以及scikit-learn实现
交叉验证 交叉验证既可以解决数据集的数据量不够大问题,也可以解决参数调优的问题。 主要有三种方式: 简单交叉验证(HoldOut检验)、k折交叉验证(k-fold交叉验证)、自助法。 本文仅针对k折交叉验证做详细解…...
css实现头部占一定高度,内容区占剩余高度可滚动
上下布局: <div class"container"><header class"header">头部内容</header><div class"content">内容区域</div> </div>.container {display: flex;flex-direction: column;height: 100vh; /*…...
redis主从复制模式和哨兵机制
目录 第一章、主从复制模式1.1)Redis 主从复制模式介绍1.2)Redis 主从复制实现、 第二章、哨兵机制2.1)容灾处理之哨兵2.2)Sentinel 配置 第一章、主从复制模式 1.1)Redis 主从复制模式介绍 ①单点故障:数…...
WebStorm:Mac/Win上强大的JavaScript开发工具
WebStorm是JetBrains公司开发的针对Mac和Windows系统的JavaScript开发工具。它为开发者提供了一站式的代码编辑、调试、测试和版本控制等功能,帮助你更高效地进行Web开发。新版本的WebStorm 2023在性能和用户体验方面都做出了重大改进,让你的JavaScript开…...
传世SUN引擎如何安装
大家在搭建的时候一定要理清思路一步一步来,否则一步错步步错。下面跟大家说一下搭建的顺序以及细节。 第一步:首先下载DBC2000进行安装,并按照里面的说明设置好。1、请把压缩包释放到D:\QMirServer目录下。2、在控制面板里找到BDC Administ…...
vue 生命周期
什么是生命周期,有什么作用 定义:vue 实例从创建到销毁的过程,在某个特定的位置会触发一个回调函数 作用:供开发者在生命周期的特定阶段执行相关的操作 生命周期分别有几个阶段 有四个阶段,每个阶段有两个钩子&…...
多开工具对应用程序性能的影响与优化
多开工具对应用程序性能的影响与优化 摘要: 随着计算机技术的不断发展,多开工具逐渐成为一种常见的软件应用。然而,使用多开工具可能会对应用程序的性能产生一定的影响。本文将探讨多开工具对应用程序性能的影响,并提供一些优化方…...
G1 GC基本逻辑
1 MixedGC基本过程 在G1GC中,有两种主要的垃圾回收过程:Young GC和Mixed GC。这两者都是为了回收堆内存中的垃圾对象,但是他们关注的区域和工作方式有所不同。 Young GC: Young GC主要负责回收Young Generation(包括…...
nvidia安装出现7-zip crc error解决办法
解决办法:下载network版本,重新安装。(选择自己需要的版本) 网址:CUDA Toolkit 12.3 Update 1 Downloads | NVIDIA Developer 分析原因:local版本的安装包可能在下载过程中出现损坏。 本人尝试过全网说的…...
(C语言实现)高精度除法 (洛谷 P2005 A/B Problem II)
前言 本期我们分享用C语言实现高精度除法,可通过该题测试点我点我,洛谷 p2005。 那么话不多说我们开始吧。 讲解 大家还记不记得小学的时候我们是怎么做除法的?我们以1115为例。 我们的高精度除法也将采用这个思路进行,分别用两…...
【AI】Windows环境安装GroundingDINO
Grounding DINO简单来说,它可以根据文字描述检测指定目标。此外,当Grounding DINO与stable diffusion结合,便可以实现更神奇的功能–自动P图。在专业领域中,GroundingDINO可以用来进行遥感影像解译,可以减少人工工作量…...
【Node.js】基础梳理 6 - MongoDB
写在最前:跟着视频学习只是为了在新手期快速入门。想要学习全面、进阶的知识,需要格外注重实战和官方技术文档,文档建议作为手册使用 系列文章 【Node.js】笔记整理 1 - 基础知识【Node.js】笔记整理 2 - 常用模块【Node.js】笔记整理 3 - n…...
.NET8 依赖注入
依赖注入(Dependency Injection,简称DI)是一种设计模式,用于解耦组件(服务)之间的依赖关系。它通过将依赖关系的创建和管理交给外部容器来实现,而不是在组件(服务)内部直…...
Ubuntu18安装(重启黑屏问题)
1. F10 进入bios,选择u盘里的ubuntu镜像 2.进入使用ubuntu,下载 3.重启,esc 4.ubuntu 安e进入 5. nomodeset() F10 保存启动 6. 7.没有网 手机usb提供网络 下载有限网卡驱动...
[PyTorch][chapter 4][李宏毅深度学习][Gradient Descent]
前言: 目录: 1: 梯度下降原理 2: 常见问题 3: 梯度更新方案 4: 梯度下降限制 一 梯度下降原理 机器学习的目标找到最优的参数,使得Loss 最小 为什么顺着梯度方向loss 就能下降了。主要原理是泰勒公式。 假设损失函数为 忽略二阶导数, 当 …...
利用proteus实现串口助手和arduino Mega 2560的串口通信
本例用到的proteus版本为8.13,ardunio IDE版本为2.2.1,虚拟串口vspd版本为7.2,串口助手SSCOM V5.13.1。软件的下载安装有很多教程,大家可以自行搜索,本文只介绍如何利用这4种软件在proteus中实现arduino Mega 2560的串…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...
【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...
Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...
