V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
gdb
V2EX  ›  程序员

请问 github 的两步验证(two-factor authentication)大家是怎么做的?

  •  
  •   gdb · 2023-08-23 09:19:33 +08:00 · 12817 次点击
    这是一个创建于 487 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近收到 github 发来的邮件,要求账户进行两步验证,如果不进行两步验证,那么 45 天之后好像访问受限制了。

    我登陆看了一下,可以使用 SMS authentication ,但是进去看了一下,里面没有中国大陆的手机可以选择,压根里面就没有 China 的选项,所以用不了。

    另外一种选项是:Setup authenticator app ,提示的方法是:Use an authenticator app or browser extension to scan 。 但是我用手机的 Firefox 浏览器的扫码功能试验了一下,无法扫码这个二维码。

    请问大家是如何进行两步验证的?

    谢谢!

    134 条回复    2024-08-16 15:20:13 +08:00
    1  2  
    key0323
        1
    key0323  
       2023-08-23 09:22:19 +08:00   ❤️ 2
    shinsekai
        2
    shinsekai  
       2023-08-23 09:23:03 +08:00   ❤️ 1
    microsoft authenticator
    google authenticator
    如果用 iOS15 以上,系统自带的扫码就可以。
    Cola98
        3
    Cola98  
       2023-08-23 09:23:45 +08:00
    microsoft authenticator
    yaott2020
        4
    yaott2020  
       2023-08-23 09:24:19 +08:00 via Android   ❤️ 1
    那个二维码是 TOTP ,你需要一个管理软件,类似 bitwarden 或者 google auth*
    aichunya
        5
    aichunya  
       2023-08-23 09:24:49 +08:00
    因为自建了 bitwarden,所以用的 bitwarden APP 自带的 2FA 功能
    xiaonian233
        6
    xiaonian233  
       2023-08-23 09:25:10 +08:00
    用的 microsoft authenticator
    yaott2020
        7
    yaott2020  
       2023-08-23 09:25:50 +08:00 via Android
    @key0323 按照这个我不如去下载 app
    aichunya
        8
    aichunya  
       2023-08-23 09:26:07 +08:00
    @aichunya 自带 TOTP 功能
    shyangs
        9
    shyangs  
       2023-08-23 09:26:27 +08:00
    [ Github 2FA 如何简单实现? ]( https://www.v2ex.com/t/965341 )
    luoyonghao
        10
    luoyonghao  
       2023-08-23 09:30:03 +08:00   ❤️ 3
    我用的 1password ,登录时会自动填充,挺方便。
    Davic1
        11
    Davic1  
       2023-08-23 09:30:39 +08:00
    @shinsekai 系统自带的扫码扫出来是啥效果
    paynezhuang
        12
    paynezhuang  
       2023-08-23 09:33:30 +08:00
    一直用了 google authenticator 和 github app
    Shunichi
        13
    Shunichi  
       2023-08-23 09:38:48 +08:00
    passkey ,iPhone 直接使用原生相机扫一扫就可以了。
    mythabc
        14
    mythabc  
       2023-08-23 09:39:24 +08:00 via Android
    不需要用指定的那两 APP 。
    自建 bitwarden 就可以用了
    xiaowzp
        15
    xiaowzp  
       2023-08-23 09:42:40 +08:00
    用的开源软件 Aegis
    mmdsun
        16
    mmdsun  
       2023-08-23 09:43:27 +08:00
    推荐微软验证器。
    gdb
        17
    gdb  
    OP
       2023-08-23 09:43:32 +08:00
    @shinsekai 谢谢,我是安卓手机,我刚刚看了一下,microsoft authenticator 这个软件有 90 多 M ,看了一下 google authenticator ,这个软件只有 15M ,所以我最终装了一个 google authenticator ,只需要下载这个 apk 文件,安装了之后,也不需要登陆 google 的账号,只是拿来进行二维码拍照,就可以使用了。 最终 github 需要我记录备份好一大堆 recovery 的密码信息,我保存好之后,似乎这个二次验证就结束了。

    我在想是不是以后每次登陆 github 的时候,除了需要我输入常规的 github 的账号之外,是否都需要拿出手机并使用 google authenticator 来拍照?这个感觉用起来稍微有点麻烦。

    还有一个问题,我来有一个 github 的账户,基本上不常用,是不是意味着我得准备 2 个手机???
    MAGA2022
        18
    MAGA2022  
       2023-08-23 09:43:51 +08:00
    密码管理器啊,我用的 keepassxc
    gdb
        19
    gdb  
    OP
       2023-08-23 09:45:42 +08:00
    看了一下 github 发来的邮件说明:

    Recovery codes are the only way to access your account again. By saving your
    recovery codes, you’ll be able to regain access if you:

    * Lose your phone
    * Delete your authenticator app
    * Change your phone number

    所以相当于我现在登陆 github 的时候,必须要使用一个手机里面的 google authenticator 软件作为第二步验证的工具了?这个确实有点麻烦了。。。
    shinsekai
        20
    shinsekai  
       2023-08-23 09:47:36 +08:00
    @gdb 不用拍照,但每次登录需要打开 app 看码
    shinsekai
        21
    shinsekai  
       2023-08-23 09:49:18 +08:00   ❤️ 2
    @Davic1 在 iOS 密码管理里面会显示验证码和倒计时,跟别的 authenticator 一样
    Jisxu
        22
    Jisxu  
       2023-08-23 09:52:00 +08:00
    bitwarden 支持导入各种符合规范的 2fa ,同时还有开源的 2fas 作为两步应用的补充
    ltkun
        23
    ltkun  
       2023-08-23 09:53:28 +08:00 via Android
    本来以为二次验证普及了 结果还有人觉得麻烦
    aahao
        24
    aahao  
       2023-08-23 09:55:11 +08:00
    microsoft authenticator
    zbinlin
        25
    zbinlin  
       2023-08-23 09:56:06 +08:00
    在这里看到第二个了,现在居然还有这么多人不会用 TOTP 的,看来对 2Fa 的普及任重而道远啊
    wdssmq
        26
    wdssmq  
       2023-08-23 09:56:20 +08:00
    双因素认证( 2FA )教程 - 阮一峰的网络日志
    https://ruanyifeng.com/blog/2017/11/2fa-tutorial.html
    naminokoe
        27
    naminokoe  
       2023-08-23 09:59:11 +08:00
    我直接用指纹登录,比 2FA 还高级呢
    gdb
        28
    gdb  
    OP
       2023-08-23 10:01:27 +08:00
    @shinsekai 好的,明白,多谢,我刚刚试验了一下(先退出登陆 github ,然后再登陆),可以使用。

    不过我遇到另外一个问题,在我的 google authenticator 里面,现在显示有两个动态的密码。我看了一下,两行文字都是针对我的同一个 github 账户的,而且两个账户的密码都在同时刷新,当然密码的内容不一样。

    我回忆了一下,我今天早上在使能二次密码验证的时候,可能第一个 github 的二维码过期了,然后我也用 google authenticator 扫码了一下,这样在这个 app 里面就有一行记录了。然后我刷新了 github 的二维码,我又用 google authenticator 扫码了一下,这样,我的 app 里面就有两个密码了。

    我现在登陆 github 的时候,我看了一下,第一个动态密码是不能用(无法作为 github 的二次验证登陆),第二个动态密码是可以用的。

    我的问题是,我是否可以 app 里面,直接删除这个第一行的这个动态密码?
    hsfzxjy
        29
    hsfzxjy  
       2023-08-23 10:02:18 +08:00
    用 bitwarden 浏览器插件,自动填充 TOTP
    conky
        30
    conky  
       2023-08-23 10:03:45 +08:00
    别用 microsoft authenticator ,丢过验证。
    我用 bitwarden 自己搭建
    ShadowPower
        31
    ShadowPower  
       2023-08-23 10:05:25 +08:00
    KeepassXC
    nothingistrue
        32
    nothingistrue  
       2023-08-23 10:08:04 +08:00   ❤️ 1
    这是最常见的两部验证方法:TOTP 。详细情况搜索这个关键词了解。

    TOTP 是一种离线的、实时计算的、验证码,需要使用特定软件来做计算,使用的时候是输入动态验证码,不是扫码。开通阶段的那个二维码,本质上只是携带了服务、用户名和私钥的普通字符串(通常所说的二维码本质上是一个动态 URL ),其扫码过程,是让 TOTP 本地软件(这个不该说客户端了,因为 TOTP 的两个端是无需连接的)登记一下这些信息。

    TOTP 算法是公开的,其本地软件谁都可以做。不过一般为了使用方便,可以依个人方向,直接用 microsoft authenticator 、google authenticator 、ios 钥匙串。但是,请一定在使用在线或可同步 TOTP 软件的同时,额外用一份纯本地的 TOTP 软件,作为备用措施。
    gdb
        33
    gdb  
    OP
       2023-08-23 10:12:10 +08:00
    @wdssmq 谢谢,这个阮一峰的教程我现在看了,还是写得很清楚的。


    @zbinlin 是啊,我这个是第一次接触,以前从来没有用过,虽然 google ,github 等都已经使用了很多年了。
    ClarkAbe
        34
    ClarkAbe  
       2023-08-23 10:18:01 +08:00
    个人账号一般是直接写进 zx2c4/pass 里面然后浏览器插件自动填充, 临时马甲和临时分享...写了个网页来干这事情...
    https://clarkqwq.top/s/totplive#114514PdS46Juzcyx
    deplivesb
        35
    deplivesb  
       2023-08-23 10:24:37 +08:00
    2FA method 可以选 security keys , 如果在 feature preview 开了 Passkeys ,还可以添加 Passkeys
    我就添加了两台 MacOS 的 Touch ID 作为 passkey ,还添加了一个 yubikey 作为 Security keys,也配置了了 totp 作为最后的验证方式


    日常在常用电脑上直接 Touch ID 就可以,非常用电脑可以 yubikey ,再不济也有 totp
    Ryuu
        36
    Ryuu  
       2023-08-23 10:27:29 +08:00
    以前用 Microsoft Authenticator 。现在已经转战 KeePassXC 了,设置之后可以快速填写 TOTP
    ahswch
        37
    ahswch  
       2023-08-23 10:28:37 +08:00
    我用的微软验证器 挺好的
    stevenshum
        38
    stevenshum  
       2023-08-23 10:29:30 +08:00
    @paynezhuang 我也一直在用这两个,github app 好像不好更新
    ruanimal
        39
    ruanimal  
       2023-08-23 10:33:51 +08:00
    @hsfzxjy 要会员。。
    cht
        40
    cht  
       2023-08-23 10:33:53 +08:00
    好像一直没见人说过 Duo Mobile 🤔
    yoa1q7y
        41
    yoa1q7y  
       2023-08-23 10:43:42 +08:00
    1password ,自动填充,非常方便
    yiXu
        42
    yiXu  
       2023-08-23 10:44:34 +08:00
    https://gist.github.com/xcatliu/4e1d5e69fc5f8a49e4e6

    我以前用的方法(编辑网页源代码,支持发送国内手机短信),现在用 1password 了,不知道还好不好使
    oneisall8955
        43
    oneisall8955  
       2023-08-23 10:48:16 +08:00 via Android
    bitwarden 美滋滋,自动填充
    gdb
        44
    gdb  
    OP
       2023-08-23 10:54:24 +08:00
    @yiXu 谢谢分享,你这个用修改代码的方式搞,我没这个能力去用。对了,1password 是一个手机上面的 app ?还是一个网页浏览器里面的插件?我没看懂他的网站介绍,看起来前面说的能自动填充的,那好像是个网页插件(例如 firefox 的 add on ?)
    superchijinpeng
        45
    superchijinpeng  
       2023-08-23 10:58:20 +08:00
    1P Passkey 直接验证,都不用填充
    wunonglin
        46
    wunonglin  
       2023-08-23 10:59:09 +08:00
    用 1password 啊,1password 是全平台可以用,甚至 cli ,搞那么多乱七八糟的
    hsfzxjy
        47
    hsfzxjy  
       2023-08-23 10:59:53 +08:00 via Android
    @ruanimal 自建啊
    yiXu
        48
    yiXu  
       2023-08-23 11:02:19 +08:00
    @gdb 我提到的方法,如果还行的话,验证之后以后就是手机接验证码,不是每次都改,是第一次需要。

    看起来你没怎么用过这类密码管理器,他有对应的各类客户端(电脑,手机什么的),但是对于浏览器来说,也提供插件(谷歌插件,edge 插件,firefox 的 add on )来完成点击后自动填充,不过这些密码管理器有些是需要付费的( 1password 等),当然还有些有免费的,如 bitwarden ,当然对于密码管理器的多端同步则需要付费或者个人自建。

    看你使用频率其实,感觉你好像没用过密码管理器,可以找下相关的介绍了解下再看看。

    直接使用一些 authenticator 也是可行的,但是我以前的使用经历里,有过换硬件(手机换掉),发现不好同步(感觉不直观,没有主账号登录方便),所以个人是推荐密码管理器,或者尝试手机短信的两步验证。
    cccer
        49
    cccer  
       2023-08-23 11:16:03 +08:00
    github 支持 passkey ,直接用 windows hello 登录就行,密钥保存在微软账号。
    jellybool
        50
    jellybool  
       2023-08-23 11:53:30 +08:00
    1Password
    wildman9527
        52
    wildman9527  
       2023-08-23 12:02:28 +08:00   ❤️ 3
    @key0323 #1 V2 惊现 CSDN 链接🤣
    me876
        53
    me876  
       2023-08-23 12:05:30 +08:00
    oneisall8955
        54
    oneisall8955  
       2023-08-23 12:19:48 +08:00 via Android
    @ruanimal 自建不用钱
    yunyuyuan
        55
    yunyuyuan  
       2023-08-23 12:25:06 +08:00   ❤️ 1
    google authenticator 离线版(不知道是不是真离线),我有个自建的 nextcloud ,把 recover-code 用 rclone 的 crypto 模式保存到 nextcloud ,双重安全保证
    cbdyzj
        56
    cbdyzj  
       2023-08-23 12:42:36 +08:00
    我用的 okta 的
    moshou
        57
    moshou  
       2023-08-23 12:43:02 +08:00
    用的是 1Password
    rekulas
        58
    rekulas  
       2023-08-23 12:44:11 +08:00
    开 2fa ,拿到 key ,例如 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    然后打开 https://del-xiong.github.io/web-2fa/?code=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    lovelylain
        59
    lovelylain  
       2023-08-23 12:53:53 +08:00 via Android
    duo mobile ,用了快 10 年了,简洁好用,无依赖
    NoOneNoBody
        60
    NoOneNoBody  
       2023-08-23 12:54:36 +08:00
    TOTP
    基本能用这个的 2FA 我都用它,可编程、可备份、可兼容
    xw
        61
    xw  
       2023-08-23 12:57:47 +08:00 via Android
    totp+1
    密码管理器 基本都支持
    HarveyLiu
        62
    HarveyLiu  
       2023-08-23 13:01:26 +08:00
    Enpass Pro
    AirCrusher
        63
    AirCrusher  
       2023-08-23 13:34:02 +08:00
    GitHub 因为认为无法保证+86 验证码总是能正常推送,所以默认禁用了+86 的选项。但是各位可以在前端自行加入这个选项,亲测可以正常收验证码。
    https://blog.csdn.net/dietime1943/article/details/121524727
    loukky
        64
    loukky  
       2023-08-23 13:45:23 +08:00 via Android
    我用的 authy
    wonderfulcxm
        65
    wonderfulcxm  
       2023-08-23 13:47:01 +08:00
    Github 的 2FA 能支持指纹的,下面有一个 Security keys 的选项,开启后用 Macbook Air 上的指纹还是 iPhone 上的 Home 键的指纹都能登录。浏览器用 Chrome 或者 Safari ,Firefox 不行。
    billlee
        66
    billlee  
       2023-08-23 14:00:58 +08:00 via Android
    @cccer windows hello 那个密钥不是保存在 TPM 吗?
    doco
        67
    doco  
       2023-08-23 14:06:31 +08:00
    @wonderfulcxm 我的 M1 mbp 添加 securityKey 总提示出错不知道为什么
    dingdangnao
        68
    dingdangnao  
       2023-08-23 14:08:02 +08:00
    用了 passkey 。。只需要 Touch ID 或者 Face ID 就可以了😂😂
    doco
        69
    doco  
       2023-08-23 14:08:12 +08:00
    @doco 切隐私模式就好了- -
    Rooger
        70
    Rooger  
       2023-08-23 14:10:21 +08:00
    早上我也收到提醒了,我尝试点了一下 SMS ,发现没有 +86 ,不想用美国手机号验证。毕竟 2FA 的 App 我还一个没有使用过,想体验一下。

    我也没有用过 1Password ,于是我就在 App Store ,搜索了一下,发现 Google Authenticator 下载的最多,我就下载使用了。
    docx
        71
    docx  
       2023-08-23 14:12:09 +08:00 via iPhone
    开通 TOTP ,这类软件很多,主力存一份,再备份一套 Key 以防不测

    再开通 recovery code
    JayeGT002
        72
    JayeGT002  
       2023-08-23 14:12:46 +08:00
    1password
    laydown
        73
    laydown  
       2023-08-23 14:18:42 +08:00 via Android
    我以为怎么啦,发现楼主是从来没接触过两步验证产生的疑惑。其实随便用一个验证器扫码就行了,以后登入时,除了密码,再输入验证器里的动态码就行。验证器各个平台都很多,尽量选可导出备份的。
    Achophiark
        74
    Achophiark  
       2023-08-23 14:22:25 +08:00
    yubikey
    cheng6563
        75
    cheng6563  
       2023-08-23 14:27:29 +08:00
    TOTP 软件一推,支持用 TOTP 软件验证的软件也一堆了,就快变成主流了。
    你当他是个通用的手机安全令之类的东西。
    我现在 2FA 软件有 10 个认证账号了。
    Lesenelir
        76
    Lesenelir  
       2023-08-23 14:29:01 +08:00
    用了 authy ,感觉还不错
    gitxuzan
        77
    gitxuzan  
       2023-08-23 14:30:34 +08:00
    @ClarkAbe 这个写个认证,有没有开源的代码,里面的 Secret Key 是扫码获取的吗?
    sunzhuo
        78
    sunzhuo  
       2023-08-23 14:42:19 +08:00
    @AirCrusher We tried delivering an SMS to that number, but the number doesn't seem to be valid.
    出现这个错误
    a132811
        79
    a132811  
       2023-08-23 14:48:49 +08:00
    KeepassXC 、1password 、bitwarden 、google authenticator
    都提供 2FA 显示,不会用的话 google 搜索一下,非常简单的
    zhw2590582
        80
    zhw2590582  
       2023-08-23 14:52:56 +08:00   ❤️ 1
    IOS 自带这个功能,我才知道
    razaro
        81
    razaro  
       2023-08-23 15:04:26 +08:00
    passkey
    WhatTheBridgeSay
        82
    WhatTheBridgeSay  
       2023-08-23 15:51:46 +08:00
    我真的挺震惊现在 V2EX 的人居然还有不知道如何驾驭 TOTP 的,对楼主其他账号安全深感担忧
    willxiang
        83
    willxiang  
       2023-08-23 15:52:04 +08:00


    enpass
    epis2048
        84
    epis2048  
       2023-08-23 15:52:14 +08:00
    Windows Hello 也可以用 我电脑可以使用登录 PIN 码作为 Windows Hello 验证方式
    willxiang
        85
    willxiang  
       2023-08-23 15:52:42 +08:00


    贴错图了
    WhatTheBridgeSay
        86
    WhatTheBridgeSay  
       2023-08-23 15:53:23 +08:00
    如果楼主有 apple 或 google 设备的话可以直接使用 FIDO passkey ,会同步到 keychain/G 账号,可以理解为一个软件 yubikey ,通过设备的屏幕解锁就可以验证完成 2FA 挑战
    zjuster
        87
    zjuster  
       2023-08-23 15:58:57 +08:00
    @gdb 常见的 2FA 软件很多,一般是微软、谷歌,还有一个第三方的 Authy

    功能都是类似的,用哪个都一样。

    但是需要提醒一下楼主,这三款的 2FA 备份和恢复方法有很大不同,一定要保存好备份码。
    - 微软是支持云备份的,更换手机设备不需要额外操作。
    - 谷歌需要在更换设备前,进行设备的更换操作,否则需要用离线的备份码恢复。
    - Authy 需要开启多设备同时进行额外的操作,否则需要用手机号进行额外验证,但是 Authy 对大陆手机号支持有问题...

    我个人更喜欢用微软这种操作方法。
    换手机的时候,真的很容易忘记这茬...
    smirkcat
        88
    smirkcat  
       2023-08-23 15:59:19 +08:00
    ykk
        89
    ykk  
       2023-08-23 16:21:49 +08:00
    之前用 Microsoft 现在用 ios 看楼上学到的
    cccer
        90
    cccer  
       2023-08-23 16:25:55 +08:00
    @billlee passkey 是新的无密码登录标准,网站的登录密钥可以根据账号同步,windows hello 自己的 pin 或者生物识别密钥是在本地。
    Yadomin
        91
    Yadomin  
       2023-08-23 16:26:25 +08:00   ❤️ 1
    @epis2048 Windows Hello 这个跟系统和 tpm 相关吧,重装多半要寄
    RoccoShi
        92
    RoccoShi  
       2023-08-23 16:50:16 +08:00 via Android
    vaultwarden
    wentx
        93
    wentx  
       2023-08-23 17:02:17 +08:00
    wentx
        94
    wentx  
       2023-08-23 17:03:06 +08:00
    authy 呀,也可以考虑下一下用用我写的一个插件

    https://github.com/momaek/authy
    zggsong
        95
    zggsong  
       2023-08-23 17:22:43 +08:00
    虽然有自建的 bitwarden ,但是我怕自己的服务挂壁了 目前用的 google 的
    listenfree
        96
    listenfree  
       2023-08-23 17:25:21 +08:00
    google 密码器 + 云同步,多试一下恢复操作。
    7gugu
        97
    7gugu  
       2023-08-23 17:25:23 +08:00
    iOS 下载一个《 DUO Mobile 》,这个二步验证器支持 iCloud 同步,换手机的时候可以丝滑迁移。(从 12-13-14Pro 都没问题)
    gdb
        98
    gdb  
    OP
       2023-08-23 17:34:58 +08:00
    @WhatTheBridgeSay 我平时玩网络玩得不多的,所以可能安全方面的问题确实关注不多。。。。。。
    gdb
        99
    gdb  
    OP
       2023-08-23 18:01:44 +08:00
    @zjuster 好的,多谢你的提醒,我现在是用了 google 的 google authenticator ,主要觉得就是它这个 app 的体积很小,下载了一个 apk ,才 15M ,我看微软的都是 95M 的 apk 大小了。
    ClarkAbe
        100
    ClarkAbe  
       2023-08-23 18:04:11 +08:00 via Android
    @gitxuzan #77 不是...你看 url hash
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2784 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 08:47 · PVG 16:47 · LAX 00:47 · JFK 03:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.