我们今天登上了 Product Hunt! 留下评论

使用 GitLab 身份验证器

GitLab 的「One-time password authenticator」(一次性密码身份验证器)支持任何 TOTP 应用,包括浏览器中的。进入 Edit profile(编辑个人资料)→ Access(访问)→ Password and authentication(密码和身份验证),选择「Register authenticator」(注册身份验证器),用 Authenticator 扩展扫描屏幕上的二维码,再输入密码和六位数验证码确认。

GitLab 账户可以推送代码、批准合并请求、运行 CI 流水线,还保存着部署所用的变量和令牌——谁以你的身份登录,就能以你的名义发布代码。开启 2FA 后,仅凭密码无法登录。群组和实例也可以强制要求开启,所以在参与某个项目之前,你可能会被要求先开启它。

在 GitLab 注册身份验证器

开启 2FA 后,你的密码将无法再用于通过 HTTPS 使用 Git 和 GitLab API——请创建个人访问令牌(personal access token)来代替。在公司运行的自托管 GitLab 上,界面是一样的;只是要在那个实例上打开,而不是在 GitLab.com 上。

  1. 在电脑上登录 GitLab。
  2. 选择右上角的头像,然后选择「Edit profile」(编辑个人资料)。
  3. 在左侧边栏中选择「Access」(访问)→「Password and authentication」(密码和身份验证)。
  4. 在「One-time password authenticator」(一次性密码身份验证器)部分,选择「Register authenticator」(注册身份验证器)。
  5. GitLab 显示二维码时,保持该页面打开,按下文所述添加到扩展中——手动输入所需的信息就在它旁边——然后输入当前密码和扩展中的验证码,选择「Register with two-factor app」(使用双重验证应用注册)。
GitLab 官方说明

将 GitLab 添加到 Authenticator

  1. 从 Chrome Web Store 安装身份验证器 2FA,并把它固定到工具栏,这样点一下图标就能打开。
  2. 保持 GitLab 显示二维码的页面不要关闭。点击 Authenticator 图标,然后依次选择「添加账户」→「二维码」→「从屏幕扫描QR码」。
  3. 账户会出现在列表中,并显示一个每 30 秒变化一次的六位数验证码。你可以随意重命名——名称只给你自己看。
  4. 回到 GitLab,把当前验证码填入确认框。如果它快要过期,就等下一个。
  5. GitLab 会提示双重验证已开启。之后每次登录都会要求输入验证码——点击扩展图标复制即可。

没有二维码,或者扫不出来?在 GitLab 的设置页面找到手动输入密钥的选项,复制密钥,然后在扩展中通过「添加账户」→「手动输入」→「密钥」添加。

免费安装身份验证器 2FA(Chrome 扩展)

下载 GitLab 恢复代码

验证码被接受后,GitLab 会显示你的恢复代码。复制或打印它们,或选择「Download codes」(下载代码)保存为 gitlab-recovery-codes.txt,然后存放在这台电脑以外的地方。每个代码只能用一次。要获取新的一组,进入 Password and authentication →「Regenerate recovery codes」(重新生成恢复代码)并输入密码——旧代码会随之失效。

验证码不被接受?

最常见的是二维码变了:每当设置页面被刷新或重新打开,网站都会生成一个新的二维码,所以你先前添加的账户就对不上了。重新开始设置,添加现在屏幕上的二维码,并立即输入它的验证码。同一个网站有两个条目?用最新的那个。其他原因:验证码为什么被拒绝。

密钥是手动输入的?把它粘贴到TOTP 验证码生成器中,对比生成的验证码与扩展中的是否一致。如果不一致,说明密钥复制错了——请重新添加账户。

常见问题

没有手机能用 GitLab 身份验证器吗?
可以。GitLab 列举了 Google Authenticator、Microsoft Authenticator 和 Authy 等手机应用,但它只校验六位数验证码,任何能生成标准基于时间的验证码的应用都能生成它。Authenticator 扩展能直接读取 GitLab 页面上的二维码,并把验证码保存在 Chrome 中。
如果我无法使用身份验证器了怎么办?
在双重验证提示中选择「Recover your account」(恢复你的账户),输入一个恢复代码。恢复代码也丢了?如果账户上还有 SSH 密钥,运行 ssh git@gitlab.com 2fa_recovery_codes 并输入 yes 确认,即可获得一组新代码。GitLab 支持只为付费的 GitLab.com 账户(Premium 或 Ultimate)重置 2FA——免费账户一旦丢失所有方式,就会被永久锁在外面。
开启 2FA 后,为什么 git push 拒绝我的密码?
开启 2FA 后,GitLab 不再接受用密码通过 HTTPS 使用 Git 或 API。创建一个个人访问令牌,在 Git 要求输入密码的地方填入它——或者改用 SSH 推送,它使用你的 SSH 密钥,不受影响。
为什么 GitLab 提示我的验证码不对?
通常是二维码变了:如果你离开了页面又重新开始注册,GitLab 会生成新的二维码,你先前添加的账户就对不上了。从扩展中删除它,添加现在屏幕上的二维码,并立即输入它的验证码。如果有两个 GitLab 条目,用最新的那个。

验证码就在登录页旁边,一键即得

Authenticator 把你的 2FA 验证码保存在浏览器里,只存放在你自己的设备上——可免费使用、开源,无需注册账户,也不需要手机。内置本地备份和可选的密码保护。

免费安装身份验证器 2FA(Chrome 扩展)