github 要开启两阶段认证了,有什么好方案吗

1Password, Authy, Microsoft Authenticator 这几个app ,国内好像都不太好装,或者是收费。

1 个赞

一直用的 step two

如果只是想找个免费的支持 TOTP (Time-based one-time password) 类型的两步验证 App,其实有非常多选择,我一直用的是 Google Authenticator。去翻翻开源的项目估计也有很多。
国内不好装是国内的问题,跳过这个话题。

但是你问有什么好方案,我强烈建议购买一个类似 yubikey 的硬件,看起来像这样
image

插上之后需要登录的时候就摸一下。方便安全,还能用于 GPG 加密/签名,开机 PIN 保护等等,除了贵没缺点(200 到 1000 RMB 不等)

当然你也可以同时绑定 TOTP 和 yubikey,如果临时忘记带可以继续用 TOTP。

1 个赞

我一直用的这个

或者用 Emacs

1 个赞

Github 此举属实恶心,最好的方案就是放弃 Github.

另外补充一下 Github 关于强行推行 2FA 的通知 https://github.blog/2023-03-09-raising-the-bar-for-software-security-github-2fa-begins-march-13/

不好安装原本只是一个技术问题,但是在手机应用必须备案的新规下已经成了一个法律问题,确实需要慎重考虑。

虽然现如今一个人在中国大陆使用 Github 的过程中大概率已经用了某些违法的技术了 :innocent:

2 个赞

刚刚收到邮件提醒了。看来要试试 Microsoft 家的 Authenticator

一直在用这个。

我们公司用的 Office 全家桶,都得用 Microsoft Authenticator。用 iPhone 安装这个 App 比较方便,用 安卓的话,有的手机品牌(比如小米)需要用百度助手安装才能用。

我觉得你搞错了攻击对象

1 个赞

用的 pass,支持 TOTP。通过私有 Git 仓库在多端同步数据,数据通过 GnuPG 加密:

  • Desktop 上用的 pass 的命令行版本,理论上支持各种 *NIX 系统。
    • Emacs 里可以调用 auth-source-pass-get
  • iOS 上用的 Pass

怎么删除一个条目?

(auth-source-forget ...) 删除之后,打开 topt-widget 发现还在。

先试试 auth-source-forget-all-cachedauth-source-forget 的 spec 要完全一致才有用。

Microsoft Authenticator 不是很好装么。。。我直接从应用商店装的

这个会有什么影响?影响不能使用 emacs copilot?还是会影响本地 git 不能直接推送到远端?

不是所有手机都能直接从应用商店安装,有的被禁了,装了用不了。不过用百度助手装就可以了。

1 个赞

下午花了点时间看了下 RFC,自己用 swift 写了一个,直接用 macOS 的 keychain 来保存 secrete key,比用 Emacs 的 auth source 安全。

5 个赞

执行力👍🏻

不过我这边编译遇到点问题:

  1. 找不到 SDK,我改了一下可以了:

    +SWIFTFLAGS=-sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk
    @@ -10 +11 @@ run: libutils.dylib
    -       swift main.swift -I . -lutils
    +       swift $(SWIFTFLAGS) main.swift -I . -lutils
    @@ -13 +14 @@ libutils.dylib: $(LIB_FILES)
    -       swiftc -emit-library -olibutils.dylib $(LIB_FILES)
    +       swiftc $(SWIFTFLAGS) -emit-library -olibutils.dylib $(LIB_FILES)
    @@ -19 +20 @@ totp: $(SOURCE_FILES)
    -       swiftc -Osize -remove-runtime-asserts -o $@ $(LIB_FILES) $(SOURCE_FILES)
    +       swiftc $(SWIFTFLAGS) -Osize -remove-runtime-asserts -o $@ $(LIB_FILES) $(SOURCE_FILES)
    
  2. 找不到 CryptoKit:

    crypt.swift:2:8: error: no such module 'CryptoKit'
    import CryptoKit
        ^
    make: *** [totp] Error 1
    

    我查了一下,CryptoKit 最低系统要求 10.15 :sweat_smile:

最后找到一个比较旧的项目,也蛮好用 GitHub - MinaOTP/MinaOTP-MAC: Two-factor authentication tray app in macOS

我很早就开启了这个认证,目前emacs copilot 和 magit的体验和以前一样,没有受到影响。

Emacs 存的是明文放在 ~/.authinfo,然后用 Emacs 打开还显示星号,刚开始我还真以为是加密过的 :sweat:

image