V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
gdb
V2EX  ›  程序员

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

  •  
  •   gdb · 260 天前 · 10966 次点击
    这是一个创建于 260 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    谢谢!

    133 条回复    2024-02-04 15:27:38 +08:00
    1  2  
    jqtmviyu
        101
    jqtmviyu  
       260 天前
    Keepass, 支持 web, ios, macos, windows, android.
    SekiBetu
        102
    SekiBetu  
       260 天前
    我把那个设置用的代码存到 bitwarden 了,变相云同步了一个 2FA
    anpho
        103
    anpho  
       260 天前
    yubikey !
    skiy
        104
    skiy  
       260 天前
    用 authy 。

    另外,可以用纸张把 totp 那串 secret 记下来,也就没多大影响了,APP 没了也无所谓了。
    zbowen66
        105
    zbowen66  
       260 天前
    @shinsekai #2 这俩都不能在 Apple Watch 上看。
    zbowen66
        106
    zbowen66  
       260 天前
    @shinsekai #2 这俩真不如 2fas (也不支持 apple watch ,但画饼很久了)
    paynezhuang
        107
    paynezhuang  
       260 天前
    @stevenshum #38 没有啊,在商店里,有更新随时更新啊。
    zsdroid
        108
    zsdroid  
       260 天前
    用 google authenticator 注意备份,一旦你卸载了,就完了
    slrey
        109
    slrey  
       260 天前
    @shinsekai 谢谢,第一次知道 iOS 还自带这功能
    epis2048
        110
    epis2048  
       260 天前
    @Yadomin #91 谢谢提醒 我还开了微软的 auth 并备份了恢复码,不过平常感觉用这个方便。点一下 输个 pin 码就 ok 了
    hellsakura
        111
    hellsakura  
       260 天前
    @zjuster #87 google 的也已经支持云备份了,不过我个人习惯导入之后手动导出一份到本地保存,防止云备份出问题
    sonnyclarity492
        112
    sonnyclarity492  
       260 天前
    @shinsekai #2

    涨知识了,才知道 iOS 本身就有这功能,

    可惜已经把所有密码都搬到 Bitwarden 上去了
    yeqizhang
        113
    yeqizhang  
       260 天前 via Android
    我用 freeOTP 的,不能导出,哭晕在厕所
    SimonOne
        114
    SimonOne  
       260 天前
    二维码本身是个 uri ,你把那个二维码或者 uri 保存下来,可以在无数个设备无数个 totp 软件里加入。
    其实就是服务器上和你自己两头都有,根据时间戳定时变化的动态码,你登录输入的和服务器上的对上了不就验证通过了。
    所以那个二维码第一次扫描服务端会让你输入一次动态码,如果能对上,说明你操作 ok 了,它就绑定上了。(所以你第一条呀更没用,是个废弃的)
    Laysan
        115
    Laysan  
       260 天前
    1Password
    westerndream
        116
    westerndream  
       259 天前
    +86 手机搜下,有方法打开隐藏菜单的
    嫌麻烦有浏览器插件的,web2FA ,虽然这样安全性应该比较低
    xinge666
        117
    xinge666  
       259 天前
    Yubikey + GitHub Mobile
    lee88688
        118
    lee88688  
       259 天前 via Android
    microsoft authenticator 好处是不需要翻墙就可以直接连接,网络连接上更保险
    gdb
        119
    gdb  
    OP
       259 天前
    @westerndream 我在 github 的页面上面,打开了隐藏的菜单,使用的是之前 csdn 的方法,也就是在 console (我是 firefox ,按 F12 后,会打开一个网页调试工具页面)里面运行一个脚本:var option = new Option("China +86","+86");
    option.selected = true;
    document.getElementById('countrycode').options.add(option, 0);

    但是我发现,我根本收不到短信,github 上面会有一个英文提示:

    We tried delivering an SMS to that number, but the number doesn't seem to be valid.

    我在我的手机号码前加了 0 ,或者没有加 0 ,都是同样的错误,所以 SMS 的验证方式似乎是不能用的。
    gdb
        120
    gdb  
    OP
       259 天前
    @lee88688 google 的 authenticator 需要翻墙么?我感觉也不需要啊。这种是不是都是离线模式的啊?
    key0323
        121
    key0323  
       259 天前
    @wildman9527 有什么问题吗?博客也有鄙视链不成
    gdb
        122
    gdb  
    OP
       259 天前
    @skiy 你好,请问你说的 totp 的那串 secret 字符串是哪里可以获取到?我不是很看得懂。是不是在 github 上面显示二维码的时候,就能看到这串 secret 的字符串?不过我已经设置了用 google 的 authentication 的 app 了,还能改么?或者说用很多个 app 都支持这个功能?
    skiy
        123
    skiy  
       259 天前
    @gdb 你保存它给出来的二维码图片就好了。那字符串不过也就是二维码提取出来的,现在随便一台手机都能读取二维码信息了。再不挤就用个微信扫一下,然后复制下扫出来的链接或者分享给文件助手。
    lmone111
        124
    lmone111  
       259 天前
    gdb
        125
    gdb  
    OP
       259 天前
    @skiy 好的,明白,我大概知道你的意思了。但是我已经设置在 google authenticator 了,我如果要重新搞这个二次验证,是否需要重新清除所有的验证信息,全部重新来一遍?

    @SimonOne 多谢你前面的回复,我大概理解了,看起来我的手机里面的 google 的 authenticator 的 app 里面的第一栏的动态码应该已经废了,没啥用了。因为能用的只有第二栏的信息。
    gdb
        126
    gdb  
    OP
       259 天前
    @lmone111 谢谢,不过我有个问题,就是这个密钥直接往网上的网址里面写,会不会带来一些安全性方面的问题,能不能比如在本地运行一个 html 的网页,直接让本地的浏览器打开这个网页,然后都在本地操作?
    gdb
        127
    gdb  
    OP
       259 天前
    同学们,我看到 github 里面的 topic ,如下链接:

    totp · GitHub Topics — https://github.com/topics/totp

    我看了一下,有好多语言开发的,我随便看了几个 python 的,看起来都差不多,就是输入一个 secret 字符串,根据当前的时间,能生成一个密码。

    言下之意,我是否不借助任何 app ,直接在 python 或者别的地方也能用?

    现在关键的问题是,我昨天用 google authenticator 的时候,那个二维码的图片没有保存,我是不是要重新推倒重来(重新设置过,然后在设置的时候,把二维码保存一下?)
    skiy
        128
    skiy  
       259 天前
    @gdb 如果你之前有记录下那串字符,或者有下载保存那个二维码,你可以用别的软件添加一下,不会对你在 Google 的有任何影响。但你使用重置方式再添加,那就会有影响(也就是说,原来的失效了,必须重新添加)。
    SimonOne
        129
    SimonOne  
       259 天前
    @gdb #127 是可以,但是你猜为什么那个图片只给你看一次呢,如果你把图片泄漏了,那么又会发生什么呢。
    安全和便利是难两全的,你如果不想每次都打开 app 的话所以打算自己明文存下来本地计算的话,这套就变成走形式了,不安全了。

    你再想想,手机上有 app 可以算,难道电脑上就没了吗,你下个电脑上用的可以带浏览器自动填充的不就行了,比如前面提到的一些密码管理软件 bitwarden,1password 。

    然后怕丢失的话,uri 就加密一下存到安全的地方。
    yexingshusheng
        130
    yexingshusheng  
       259 天前
    Authy
    lee88688
        131
    lee88688  
       258 天前 via Android
    我尝试了一下 KeePassDX ,也是没问题的,我已经切换过来了。
    wenjy
        132
    wenjy  
       209 天前
    这个可以
    daisyfloor
        133
    daisyfloor  
       95 天前
    @nothingistrue 2FAs 这开源 app 算纯本地的 TOTP 软件么?
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1772 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 16:36 · PVG 00:36 · LAX 09:36 · JFK 12:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.