一些碎碎念

Github强制启用2FA后,笔者发现手头居然没有能够验证的东西,且Github的短信验证方式居然不支持+86中国地区,所以一拖再拖。

直到今天,Github全面强制启用2FA验证,将所有页面都重定向到了启用2FA验证页面,笔者竟一时间无法查看所有仓库,只能退出帐号再查看。

退出帐号这种自欺欺人的行为终究只是权宜之计,而笔者正好十分苦恼于大量使用子域名而导致的edge密码管理程序串密码,迫切需要密码管理程序。

于是写了本文,自建bitwarden托管密码,既安全又方便,且能够助我启用Github的2FA验证。

水文真爽

安装服务端

拉取镜像vaultwarden/server:

docker pull vaultwarden/server:latest

由于许多浏览器都要求https访问1,所以这里不映射端口,加入到caddy网络中反向代理。

docker run -d --name bitwarden --network caddy --restart="always" -v /your-data:/data vaultwarden/server:latest

配置反代

以笔者使用的Caddy为例,在Caddy工作目录下的Caddyfiles路径下新建bitwarden.Caddyfiles:

bitwarden.rikinyoung.com {
  reverse_proxy http://bitwarden:80
  #如果和Caddy处于同一个docker网络,则可以使用容器名:端口号配置ip地址
}

重载Caddy配置文件:

docker exec -w /etc/caddy caddy sh -c "caddy fmt --overwrite && caddy reload"

访问bitwarden.rikinyoung.com进入配置页面,根据提示创建帐号。

安装客户端

在bitwarden官网下载你所对应使用浏览器的扩展插件即可。

安装后点击浏览器扩展 -> bitwarden,点击下方选择自托管,填入https://bitwarden.rikinyoung.com,登入刚刚注册的帐号。

一定要选自托管
一定要选自托管

bitwarden有许多配置选项,读者可以自行过目选择启用需要的。

导入密码(可选)

导出原密码,以笔者使用的edge浏览器为例:

点击设置 -> 密码 -> ••• -> 导出密码,将csv文件导出到你记得住的路径。

注意此过程可能需要你输入电脑锁屏密码进行验证。

导入密码,登入bitwarden.rikinyoung.com,点击侧栏的工具 -> 导入,其中目的地栏可以不做更改,数据栏中文件格式选择Edge,文件选择刚刚导出的csv文件,点击导入即可。

为Github启用2FA验证

现在我们可以干正事了。

进入Github的强制启用2FA验证页面,点击浏览器扩展 -> bitwarden -> 新增 -> 登录,点击验证器页面的相机图标,扫描网页二维码,插件会自动填充密钥。

扫描验证二维码
扫描验证二维码

顺手的事,你可以在现在把Github的帐号密码全部输进去,将下方的自动填充选项的网站改到https://github.com/,点击保存。

回到Github验证页面,现在你点击Verify the code from the app输入框时,插件应该会提示自动填充了。

自动填充
自动填充

没有也没关系,点击浏览器扩展 -> bitwarden -> Github.com,找到验证码(TOTP),它就是我们需要的东西。

验证码所在位置
验证码所在位置

输入完成后点击下一步,跟着Github的引导做你感觉需要做的事,至此任务完成。回到你的工作吧,Github如是说

在此祝大家2026年快乐!新年新气象!


  1. 为了正确运行 vaultwarden,现在几乎必须启用 HTTPS, 因为 Bitwarden 的 Web Vault 使用了大多数浏览器只在 HTTPS 环境中提供的 Web 加密 API