开源密码管理器 Bitwarden 一站式管理所有密码以及 2FA
本文首发于只抄博客,欢迎点击原文链接了解更多内容。
前言
随着注册的平台越来越多,管理密码的难度也越来越高了。要是把密码都设置成一样的,担心哪天某个平台泄露被一锅端,而每个平台单独一个密码又不太好记,这时候就需要密码管理器上场了。
一般接触的最多的应该是浏览器自带的密码管理器,以 Chrome 为例,同步密码需要特殊的网络环境,并且这些密码明文的存储在设备上,安全性并不是很高,最关键的是浏览器的密码管理器只能在网页上填充,各类软件、APP 中就无能为力了。
那么如何选择合适的密码管理器呢?首先最重要的一点是跨平台,最少要兼容常见的 Windows、Android、iOS 平台,如果 macOS 和 Linux 也能兼容的话就更好了;其次是安全性,这就需要软件的服务商够靠谱,最好是服务端能够 Self-Hosting 的;最后就是价格,目前主流的大部分密码管理器都采用订阅制,价格算不上便宜,如果能够自建的话,就可以省下订阅费了。
有没有哪款免费的密码管理器满足这些条件呢?那就是今天要介绍的 Bitwarden 了,它是一款开源的密码管理器,并且支持跨平台,当你使用自建服务器时,可以解锁所有的功能。
安装
官方版本的 Bitwarden 服务端采用的是 C# 编写,资源开销比较大,一般低配的 VPS 和 NAS 有些吃不消,建议安装社区 Rust 重写的 vaultwarden 服务端,资源开销比较小,还可以与官方的客户端兼容。推荐使用 Docker Compose 直接启动,其中 DOMAIN
需要填写上 Bitwarden 服务端的域名,ports
映射一个自己想要的端口
services:vaultwarden:image: vaultwarden/server:latestcontainer_name: vaultwardenrestart: unless-stoppedenvironment:DOMAIN: "https://vw.domain.tld"volumes:- ./vw-data/:/data/ports:- 8080:80
Bitwarden 与其他常见的 Self-Hosting 应用不同,比较看重安全性,因此不能直接通过 http://ip:8080
的形式登录后台,需要绑定域名并开启 HTTPS 后才可以正常的登录后台,如果你是在具有公网 IP 的 VPS 上部署的 Bitwarden,那么只需要使用 Nginx 反向代理,而如果是在没有公网 IP 的 NAS 上部署,建议使用 Cloudflare Tunnel 进行访问,具体可以看我之前的文章《通过 Cloudflare Tunnel 内网穿透 实现公网访问内网服务》
完成以上步骤后,通过绑定的域名进入后台,首先要创建管理员账号,其中的主密码一定要牢记
注册完成后,使用邮箱和主密码进行登录,该过程如果没有通过 HTTPS 访问是无法登录的
服务端配置
登录到服务端之后,可以先前往 Settings -> Preferences 把语言修改成中文
回到首页,参照指引,如果正在使用其他的密码管理器或者浏览器中已经有保存密码,可以直接将其导入到 Bitwarden 中
如果想要手动添加平台,可以新建一个,每一个平台不但可以添加用户名和密码,还能添加 TOTP 来完成 2FA 验证,需要注意的是如果要用 TOTP,必须确保服务器时间准确
客户端配置
完成了服务端的配置以及数据的导入之后,还需要在客户端上登录才能够使用。客户端的话可以直接使用官方客户端,和社区 Rust 版本的 vaultwarden 服务端是兼容的。
由于 Bitwarden 本身是有官方服务器的,但需要订阅才能解锁所有功能,而我们为了免费使用所有功能选择自建服务端,需要在登录的时候切换到自托管,然后填上自建的服务端的域名,才能通过邮箱和主密码登录。
客户端登录完成后,就可以在输入框看到 Bitwarden 的图标了,点击下方的账号就可以完成自动填充
相关文章:
开源密码管理器 Bitwarden 一站式管理所有密码以及 2FA
本文首发于只抄博客,欢迎点击原文链接了解更多内容。 前言 随着注册的平台越来越多,管理密码的难度也越来越高了。要是把密码都设置成一样的,担心哪天某个平台泄露被一锅端,而每个平台单独一个密码又不太好记,这时候就…...
标准体重计算API集成指南
标准体重计算API集成指南 引言 在当今数字化和健康意识日益增长的时代,开发人员和健康管理专业人士不断寻找创新的方法来促进用户的健康生活。标准体重计算是一个关键的健康指标,它可以帮助个人了解自己的身体状况,并为制定合适的饮食和运动…...
多个终端查看的history不一样,如何确保多个终端会话之间的 history 一致,减少历史记录差异
问题: 在使用 Linux 系统时,history 命令显示的历史记录通常是与当前终端会话相关的。这就意味着,如果你在多个终端中打开会话,它们显示的历史记录可能不完全相同。这个问题通常是由以下原因引起的: 原因:…...
Spring Boot整合EasyExcel并行导出及Zip压缩下载
1. 项目依赖 首先,我们需要引入相关的依赖,包括 Spring Boot 和阿里巴巴的 EasyExcel 组件,此外还需要使用 Java 的 Zip 工具进行压缩操作。 <dependencies><!-- Spring Web --><dependency><groupId>org.springfr…...
Docker 对 iptables 规则的自动配置,这句话是什么意思
Docker 对 iptables 规则的自动配置指的是 Docker 守护进程 (daemon) 会自动管理 Linux 系统上的 iptables 规则,以便容器可以正确地进行网络通信。这对于大多数用户来说是一个方便的功能,因为它简化了容器网络配置。 具体来说,这意味着&…...
使用aarch64-unknown-linux-musl编译生成静态ARM64可执行文件
使用aarch64-unknown-linux-musl编译生成静态ARM64可执行文件 使用aarch64-unknown-linux-musl编译生成静态ARM64可执行文件1. 安装aarch64-unknown-linux-musl目标2. 安装交叉编译工具链安装musl-cross-make 3. 配置Rust编译器使用交叉编译工具链4. 编译你的Rust项目5. 运行或…...
【SpringBoot中出现循环依赖错误】
SpringBoot中出现循环依赖错误 在Spring Boot中,循环依赖(circular dependency)是指两个或多个bean相互依赖,形成一个闭合的依赖环。例如,Bean A依赖于Bean B,而Bean B又反过来依赖于Bean A。这种情况下&a…...
数据仓库-基于角色的权限管理(RBAC)
什么是基于角色的用户管理? 基于角色的用户管理(Role-Based Access Control,简称RBAC)是通过为角色赋予权限,用户通过成为适当的角色而得到这些角色的权限。 角色是一组权限的抽象。 使用RBAC可以极大简化对权限的管理。 什么是RBAC模型&…...
springboot3整合javafx解决bean注入问题
springboot整合javafx时候,很多问题就在于controller没有被spring容器管理,无法注入bean,在这里提供一套自己的解决思路 执行逻辑 这里仅仅提供一个演示,我点击按钮之后,从service层返回一个文本并显示 项目结构 创…...
.NET 8 Blazor Web项目中的 .razor 文件与 .cshtml 文件的本质区别
在.NET 8 Blazor Web项目中,.razor 和 .cshtml 文件是常用的视图文件格式。尽管它们看起来有相似之处,但在使用方式、功能和渲染机制上有着根本的不同。理解它们的本质区别,有助于开发者更好地选择合适的文件格式,并构建符合需求的…...
SpringBoot快速使用
一些名词的碎碎念: 1> 俩种网络应用设计模式 C/S 客户端/服务器 B/S 浏览器/服务器 俩者对比: 2> 集群和分布式的概念 集群: 分布式: 例子: 一个公司有一个人身兼多职 集群: 招聘N个和上面这个人一样身兼多职 分布式: 招聘N个人,分担上面这个人的工作,进行工作的拆分. 工…...
【C语言实现:用队列模拟栈与用栈模拟队列(LeetCode 225 232)】
LeetCode刷题记录 🌐 我的博客主页:iiiiiankor🎯 如果你觉得我的内容对你有帮助,不妨点个赞👍、留个评论✍,或者收藏⭐,让我们一起进步!📝 专栏系列:LeetCode…...
远程控制软件对比与使用推荐
远程控制软件对比与使用推荐 远程控制软件在现代工作环境中扮演着重要角色,无论是远程办公、技术支持、还是家庭成员之间的协助。以下是对几种常见远程控制软件的详细对比和推荐使用场景。 1. TeamViewer 特点 跨平台:支持Windows、macOS、Linux、iO…...
vue canvas 绘制选定区域 矩形框
客户那边文档相当的多,目前需要协助其将文档转为数据写入数据库,并与其他系统进行数据共享及建设,所以不得不搞一个识别的功能,用户上传PDF文档后,对于关键信息点进行识别入库! 以下为核心代码,…...
【SpringCloud】OpenFeign配置时间Decode
文章目录 1.自定义反序列化器2.配置类与自定义 ObjectMapper客户端 需求:OpenFeign配置自定义decode,解析http请求返回的时间字符串 1.自定义反序列化器 Date 自定义反序列化器 import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.j…...
Xerces-C,一个成熟的 C++ XML 解析库!
嗨,大家好!我是一行。今天咱们来探索 Xerces-C,它可是 C里超棒的 XML 解析库哦!能帮咱轻松处理 XML 数据,在很多数据交互、配置文件读取场景都超实用,快来一起学习使用它的妙招吧。 一、Xerces-C 是什么&am…...
6.2 MapReduce工作原理
MapReduce工作原理涉及将大数据集分割成小块并行处理。Map任务读取数据块并输出中间键值对,而Reduce任务则处理这些排序后的数据以生成最终结果。MapTask工作包括读取数据、应用Map函数、收集输出、内存溢出时写入磁盘以及可选的Combiner局部聚合。ReduceTask工作则…...
一次旧业务系统迁移收缩的经历
单位的一个业务系统,在几年前已经更换了。但旧的系统里面还有很多没有转移过来的数据,虽然普通用户不再需要用旧的系统,但相应部门的管理人员还需要在旧系统查询数据资料,这应该是旧系统向新系统迁移时,数据不彻底&…...
MVC配置文件及位置
配置文件位置 默认位置 WEB-INF目录下,文件名:<servlet-name>-servlet.xml <?xml version"1.0" encoding"UTF-8"?> <web-app xmlns"http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi"http://www.w3.…...
如何解决samba服务器共享文件夹不能粘贴文件
sudo vim /etc/samba/smb.conf在samba的配置文件中增加一个选项 writable yes重启Samba服务以使更改生效: sudo service smbd restart...
【中工开发者】鸿蒙商城app
这学期我学习了鸿蒙,想用鸿蒙做一个鸿蒙商城app,来展示一下。 项目环境搭建: 1.开发环境:DevEco Studio2.开发语言:ArkTS3.运行环境:Harmony NEXT base1 软件要求: DevEco Studio 5.0.0 Rel…...
(九)机器学习 - 多项式回归
多项式回归(Polynomial Regression)是一种回归分析方法,它将自变量 xx 和因变量 yy 之间的关系建模为 nn 次多项式。多项式回归的目的是找到一个 nn 次多项式函数,使得这个函数能够最好地拟合给定的数据点。 多项式回归的数学表达…...
Qt编写区位码gb2312、机内码、国标码————附带详细介绍和编码实现
文章目录 0 背景1 了解编码1.1 ASCII码1.2 机内码、国标码、区位码1.2.1 区位码1.2.2 国标码(GB 2312-80)1.2.3 汉字机内码(GB 2312) 1.3 GBK和GB2312的区别2 编码实现2.1 QString数据转QByteArray类型2.1.1 使用QTextCodec2.1.2 …...
linux网络编程 | c | epoll实现IO多路转接服务器
epoll实现IO多路转接服务器 可通过以下视频学习 06-opell函数实现的多路IO转接_哔哩哔哩_bilibili 通过响应式–多路IO转接实现 文章目录 epoll实现IO多路转接服务器1.思路&功能核心思路 2.代码实现multi_epoll_sever.c运行图 1.思路&功能 **功能:**客…...
Source Insight的使用经验汇总
01-Add All"和“Add Tree”有何区别? 在 Source Insight 中,“Add All”和“Add Tree”是两种向项目(Project)中添加文件的操作选项,它们的区别在于处理文件和目录的方式不同: 1. Add All 范围&am…...
VSCode 报错:rust-analyzer requires glibc >= 2.28 in latest build
报错信息 /home/jake/.vscode-server-insiders/extensions/matklad.rust-analyzer-0.3.953/server/rust-analyzer: /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.29 not found (required by /home/jake/.vscode-server-insiders/extensions/matklad.rust-analyzer-0.3.9…...
Android Link to Death 使用
Java侧: 【android学习】使用linkToDeath对AIDL双向死亡监听_unlinktodeath-CSDN博客 Native侧: Service端 using namespace android; class MyService :public IBinder::DeathRecipient{void MyService::binderDied(const wp<IBinder>& wh…...
【C++游记】string的使用和模拟实现
枫の个人主页 你不能改变过去,但你可以改变未来 算法/C/数据结构/C Hello,这里是小枫。C语言与数据结构和算法初阶两个板块都更新完毕,我们继续来学习C的内容呀。C是接近底层有比较经典的语言,因此学习起来注定枯燥无味…...
DockerUI info存在未授权访问漏洞
免责声明: 本文旨在提供有关特定漏洞的深入信息,帮助用户充分了解潜在的安全风险。发布此信息的目的在于提升网络安全意识和推动技术进步,未经授权访问系统、网络或应用程序,可能会导致法律责任或严重后果。因此,作者不对读者基于本文内容所采取的任何行为承担责任。读者在…...
SQL,查询每天最接近指定时间的记录
Oracle 数据库的某表有一列是日期时间类型,每天对应多条数据: td1.1.2024 08:08:0811.1.2024 10:10:1021.1.2024 15:15:1531.1.2024 20:20:2042.1.2024 09:09:0952.1.2024 12:12:1262.1.2024 16:16:16712.12.2024 16:16:168 现在要从每天找出两条记录&…...
贵阳58同城做网站公司有哪些/推广平台排行榜有哪些
一、产品介绍 工业通讯桥接器(NET30-MB-W4)用于标准Modbus设备(仪表、变频器、传感器、扫描枪)的通讯扩展。 桥接器同时支持串口、以太网、WIFI和4G多种通讯,同时支持Modbus RTU、ModbusTCP、MQTT等多种通讯协议。可…...
一个专门做标题的网站/seo优化教程自学
数学前置 Jacobian矩阵:给定函数 f:RnRmf: \R^{n}\times \R^mf:RnRm,该函数的所有一阶偏导数组成的矩阵 JJJ 称为 Jacobian 矩阵 J[∂f1∂x1...∂f1∂xn.........∂fm∂x1...∂fm∂xn]mnJ \begin{bmatrix} \frac{\partial f_1}{\partial x_1} & ..…...
星巴克网站开发票吗/自助建站工具
问题: 在Windows Server 2003 IIS6.0上布署.Net 2.0网站时发生如下错误: 该页无法显示 您试图从目录中执行 CGI、ISAPI 或其他可执行程序,但该目录不允许执行程序。 ------------------------------------------------------------------…...
做软件的中介网站/网店如何推广自己的产品
Value Noise: Perlin Noise: Simplex Noise: Worley Noise:...
设计师培训班/seo系统是什么
实验7-1-7 查找整数 (10 分) 本题要求从输入的N个整数中查找给定的X。如果找到,输出X的位置(从0开始数);如果没有找到,输出“Not Found”。 输入格式: 输入在第一行中给出两个正整数N(≤20&…...
福建省建筑信息平台/360优化大师app下载
某个b这场的c题死都找不到bug,不然就绿了呜呜呜,对我到现在都没绿我可菜了 结果发现是中间变量忘了清零了草 给一串只有abc的字符串,求最短子串满足其中的a的数量大于b的数量 首先子串开头结尾都为a,中间bc、cb、c、b、bbacc、…...