你的 Docker 账户发布着别人拉取的镜像。谁用你的密码登录,就能以你的名义推送被投毒的镜像、删除仓库,或者创建访问令牌留待日后使用。开启 2FA 后,登录 Docker Hub 或 Docker Home 时,Docker 还会要求输入身份验证器中的六位数验证码。
为 Docker 账户开启双重验证
你需要 Docker 密码,账户上还要有已验证的电子邮箱。每个 Docker 账户只能绑定一个身份验证器;开启 2FA 后,Docker CLI 不再接受你的密码用于 docker login -u、脚本和 CI——请为它们创建个人访问令牌。
- 在电脑上通过 app.docker.com 登录你的 Docker 账户。
- 选择右上角的头像,然后选择「Account settings」(账户设置)。
- 选择「2FA」,输入账户密码,然后选择「Confirm」(确认)。
- Docker 会先显示你的恢复代码。选择「Copy」(复制),或打开旁边的菜单选择「Download」(下载)或「Print」(打印),然后把它存放在这台电脑以外的地方。
- Docker 在「QR Code」(二维码)标签页上显示二维码时,保持该页面打开,按下文所述添加到扩展中——密钥在「Text Code」(文本代码)标签页上——然后在「Authentication code」(验证码)中输入扩展中的验证码,选择「Enable 2FA」(启用 2FA)。
将 Docker Hub 添加到 Authenticator
- 从 Chrome Web Store 安装身份验证器 2FA,并把它固定到工具栏,这样点一下图标就能打开。
- 保持 Docker Hub 显示二维码的页面不要关闭。点击 Authenticator 图标,然后依次选择「添加账户」→「二维码」→「从屏幕扫描QR码」。
- 账户会出现在列表中,并显示一个每 30 秒变化一次的六位数验证码。你可以随意重命名——名称只给你自己看。
- 回到 Docker Hub,把当前验证码填入确认框。如果它快要过期,就等下一个。
- Docker Hub 会提示双重验证已开启。之后每次登录都会要求输入验证码——点击扩展图标复制即可。
没有二维码,或者扫不出来?在 Docker Hub 的设置页面找到手动输入密钥的选项,复制密钥,然后在扩展中通过「添加账户」→「手动输入」→「密钥」添加。
免费安装身份验证器 2FA(Chrome 扩展)保管好 Docker 恢复代码
Docker 只给你一个恢复代码,在设置过程中先于二维码显示。丢失身份验证器时可以用它登录——但只能用一次:使用它会关闭 2FA 并删除该代码,之后你需要重新开启 2FA。如果在还能登录的时候弄丢了代码,打开 Account settings →「2FA」,确认密码,选择「Generate new code」(生成新代码);新代码会取代旧代码。
验证码不被接受?
最常见的是二维码变了:每当设置页面被刷新或重新打开,网站都会生成一个新的二维码,所以你先前添加的账户就对不上了。重新开始设置,添加现在屏幕上的二维码,并立即输入它的验证码。同一个网站有两个条目?用最新的那个。其他原因:验证码为什么被拒绝。
密钥是手动输入的?把它粘贴到TOTP 验证码生成器中,对比生成的验证码与扩展中的是否一致。如果不一致,说明密钥复制错了——请重新添加账户。
常见问题
- 没有手机能用 Docker Hub 2FA 吗?
- 可以。Docker 表示任何支持 TOTP 的身份验证器应用都可以,它只校验六位数验证码。Authenticator 扩展能直接读取 Docker 页面上的二维码,并在 Chrome 中生成验证码——无需手机。
- 开启 2FA 后如何使用 docker login?
- 运行不带用户名的 docker login,通过浏览器登录,在那里输入密码和扩展中的验证码。对于 docker login -u、脚本和 CI,Docker 不再接受你的密码:创建一个个人访问令牌,在提示输入密码时填入它。
- 如果我无法使用身份验证器了怎么办?
- 用用户名和密码登录,在 Two-Factor Authentication 页面选择「I’ve lost my authentication device」(我丢失了身份验证设备),然后输入恢复代码。这会让你登录并关闭 2FA——请立即重新开启。没有恢复代码的话,请使用 Docker 针对 2FA 锁定问题的 Contact Support(联系支持)表单。
- 如何把 Docker 2FA 转移到另一个身份验证器?
- 每个 Docker 账户只能绑定一个身份验证器,所以无法添加第二个。要换到新的应用或设备,在 Account settings →「2FA」中关闭 2FA 再重新开启,用你想使用的应用扫描新的二维码。
验证码就在登录页旁边,一键即得
Authenticator 把你的 2FA 验证码保存在浏览器里,只存放在你自己的设备上——可免费使用、开源,无需注册账户,也不需要手机。内置本地备份和可选的密码保护。
免费安装身份验证器 2FA(Chrome 扩展)