惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 聂微东
Y
Y Combinator Blog
WordPress大学
WordPress大学
L
LangChain Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
A
About on SuperTechFans
小众软件
小众软件
有赞技术团队
有赞技术团队
S
SegmentFault 最新的问题
宝玉的分享
宝玉的分享
Recent Announcements
Recent Announcements
GbyAI
GbyAI
I
InfoQ
The GitHub Blog
The GitHub Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
酷 壳 – CoolShell
酷 壳 – CoolShell
罗磊的独立博客
C
Check Point Blog
V
V2EX
Apple Machine Learning Research
Apple Machine Learning Research
月光博客
月光博客
量子位
雷峰网
雷峰网
Hugging Face - Blog
Hugging Face - Blog

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派
通过 Bitwarden 管理你的密码 - 少数派
2020-07-30 · via 少数派

对于密码安全,一款靠谱的密码管理器是非常重要的。目前市面上有着不少的密码管理器,而我选择了 Bitwarden

首先,它有着完全免费的版本,而且功能限制并不多。它允许免费用户存储不限数量的密码,同时能够与另一个账户共享密码库。对于我这种完全没有共享需求的人来说,这已经是足够我使用了。同时它完全开源,如果不放心,甚至还官方提供了 docker 镜像以供自建。

功能介绍

Bitwarden 的功能并不止于生成并管理密码,下面我来简单介绍一下。

生成并管理密码

这算是 Bitwarden 的本职工作了吧,不过除了账号密码外,它还可以通过 TOTP 提供两步验证,如果网站支持的话。另外,还能够自定义一些笔记或是新增字段,来添加对于该站点的描述。它还支持文件夹,通过不同的文件夹来进行分类,不过只支持一级文件夹。

在创建密码时,选项也比较丰富。它支持最长 128 位的密码,还可选最少的数字或特殊字符个数,并且生成的密码中,数字,字母,符号都会以不同的色彩显示,极大程度上避免了混淆。同时它还支持生成最多 20 个单词的密码短语,还可选分隔符,是否包含大小写与数字。不仅如此,它还有历史记录功能,可以查看之前所生成的密码。

数据的导出与导入

作为密码管理软件,密码的导出与导入势必是非常重要的,这关系到是否能够方便地进行数据迁移,以及是否能够方便备份,防止软件出现问题时无法登录到网站中。

Bitwarden 支持从绝大多数主流密码管理软件中进行数据导入,例如 Chrome,Firefox,1Password,LastPass 等等,并且支持 json 与 csv 这两种格式的导出,操作也非常便捷,完全能够满足我的需求。

密码安全报告

Bitwarden 还会生成一系列的安全报告,以保护用户密码的安全。

它会将密码以及邮箱地址与已经公开的,被泄露的数据库中的内容进行对比,并找出这些不安全的密码,另外也会与你自己的密码库中的密码进行对比,防止一个密码被重复使用多次。它能够找到那些非常容易被破解的密码,在自动填写的域名中未使用 https 的,以及网站有两步验证但并未被启用的,并进行提醒,增加密码的安全程度。

账户保护

除了普通的账号密码,以及两步验证(必须通过网页端开启)外,Bitwarden 还通过 “指纹短语”(fingerprint phrase)来保护帐号安全。每个帐号都有一个固定的,由 5 个英语单词组成的指纹短语,且不会改变。可以通过验证指纹短语,来判断所连接到正确的的 Bitwarden 服务器。或用来验证添加到组织中的帐号是否为正确的帐号。

它还支持通过修改 KDF 迭代来防止主密码遭到暴力破解。

其他一些安全措施,别的密码管理软件也具有,像后台自动锁定,禁止截图等等,这里就不展开细说了。

总而言之,它所提供的功能非常丰富,在生成管理密码外,还有一系列保护账户安全的功能,

自建

Bitwarden 能够部署在自己的服务器上,也就是说如果不放心官方,担心自己的数据隐私,也能够自己将 Bitwarden 部署到自己的服务器上,这样就能更加放心地使用了。这也是 Bitwarden 相对于其他密码管理软件更具有优势的一点吧。

由于部署采用的是 Docker 部署,非常简单方便,也易于升级,对新手也很友好。官方的镜像需要付费才能够使用高级的功能,因此我一般使用第三方制作的 这个 镜像,解锁了所有高级功能,也提供了非常丰富的自定义功能。

建议使用 Nginx 代理。

安装 Docker 与 Docker-compse

安装 Docker 具体可以查阅 官方文档 ,这里就简单写一下常见的 CentOS 与 Ubuntu 的安装方法。默认之前都没有安装过 Docker,并且将安装最普通的稳定版。

CentOS

sudo yum install -y yum-utils

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

sudo yum install docker-ce docker-ce-cli containerd.io
sudo systemctl enable --now docker

# 这条命令建议查看 https://docs.docker.com/compose/install/ 来确定使用的是最新的版本
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

Ubuntu

sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common
    
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

# 这里要确定使用的架构,一般都是 amd64
sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
   
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose
sudo systemctl enable --now docker

安装 Bitwarden

有官方的版本以及第三方的版本,我个人推荐第三方的。

官方安装

官方的安装文档可以查阅 这里 ,推荐配置是 64 位系统,2 核 4 G,25 G 以上。

首先需要在 这里 用邮箱申请一个 key,然后会给你一个 installation idinstallation key,记好这两串字符串。

然后连接到服务器上,运行一下命令:

curl -Lso bitwarden.sh https://go.btwrdn.co/bw-sh \
    && chmod +x bitwarden.sh
./bitwarden.sh install

之后会在终端里询问域名以及 installation idinstallation key,按照实际情况填写即可。它还会询问是否部署 SSL,如果不额外配置 nginx 等代理的话,建议选择需要,以保证访问的安全性。

最后运行 ./bitwarden.sh start 就可以通过域名访问了。

第三方部署

有人用 Rust 写了一个 Bitwarden 的第三方版本,不用在 Bitwarden 申请 installation key 和 id,直接就能使用高级版本,而且配置丰富,因此我选择使用这个版本。

注意:它由于可以不使用 Docker-compose (例如我就没有使用),因此可以只安装 Docker。

由于它会用到非常长的一串,需要更改中间部分内容的命令,建议将命令先复制到记事本中,更改完成后再复制到终端去执行。

首先先拉取 docker 镜像

docker pull bitwardenrs/server:latest

如果只是需要测试是否可以成功运行,可以先运行一下这个最简单的命令,然后通过 ip 地址访问,看看是否能够成功显示。

docker run -d --name bitwarden -v /bw-data/:/data/ -p 80:80 bitwardenrs/server:latest

如果之后需要进行其他配置,或是要升级镜像,可以通过这两条命令进行删除后再重新部署。

docker stop bitwarden
docker rm bitwarden

# 如果是要升级的话,再拉取最新的镜像
docker pull bitwardenrs/server:latest

由于可自定义的内容实在太多,我这里就介绍一些个人认为比较实用的内容,其他的可以查阅项目的 wiki 页面。

如果只是自己使用,可以在注册完自己的帐号后,加上 -e SIGNUPS_ALLOWED=false 选项来禁止新用户注册。如果需要其他人注册,可以打开 admin 页面添加。

如果需要管理账户,可以通过设置 token 打开 Admin 页面(位于 https://domain.com/admin),即加上 -e ADMIN_TOKEN=some_random_token_as_per_above_explanation,最好将这串 token 设置的复杂一些,防止被暴力破解,不过别忘记了。同时最好打开 https 防止中间人攻击。

由于一般都是个人使用,许多人不会去配置邮件服务,因此它会默认在页面直接显示出密码提示,而非将其发送至邮箱。如果不要直接显示,可以加上 -e SHOW_PASSWORD_HINT=false

如果要显示通知,则加上 -e WEBSOCKET_ENABLED=true ,并且多映射一个端口 -p 3012:3012

而如果需要配置邮件服务,可以通过以下方式配置:

-e SMTP_HOST=<smtp.domain.tld> \
-e SMTP_FROM=<bitwarden@domain.tld> \
-e SMTP_PORT=587 \
-e SMTP_SSL=true \
-e SMTP_USERNAME=<username> \
-e SMTP_PASSWORD=<password> \

具体内容因人而异,如果不理解上面这些内容都是什么,就建议不要配置了。

由于我使用 Nginx 进行代理,需要配置 DOMAIN,不然很多地方会出现奇怪的错误。加上 -e DOMAIN=https://domain.com来解决这个问题。

最后设置一下 Nginx 代理,就可以进行使用了。记得在设置上禁止注册前先注册好帐号哦 : )

server {
  server_name domain.com;

  # Allow large attachments
  client_max_body_size 128M;

  location / {
    proxy_pass http://localhost:80;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
  }

  location /notifications/hub {
    proxy_pass http://localhost:3012;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
  }
  location /notifications/hub/negotiate {
    proxy_pass http://localhost:80;
  }


  listen 80;
}

把 domain.com 换成自己的域名,把 ssl 相关内容换成自己的,再重启下 Nginx,就完成部署,可以使用了。配置证书时建议使用 certbot 自动配置,非常方便。

如果部署成功,此时访问域名就会看到这样的界面

接下来就请尽情使用吧。