你是不是也有这个痛点? 服务器密码、数据库密码、平台账号密码加起来几十上百个,记在本地记事本怕丢,用第三方云密码管理器怕泄露,收费的还要每年交年费太不划算。
今天给你们安利一个运维圈人手一个的神器:pass,全称Password Store,Linux原生的开源密码管理器,完全本地运行,用GPG对称加密,安全可控零成本,我自己用了5年从来没出过问题。
一、先搞懂pass到底是什么?
pass是一个纯命令行的开源密码管理工具,核心逻辑特别简单:
把所有密码用GPG加密后存在本地目录里,每个密码对应一个独立的加密文件,支持git版本控制和多设备同步,没有花里胡哨的UI,所有操作一行命令搞定。
它的优势真的戳中运维人的需求:
✅ 100%开源无后门,代码全在GitHub上随便查
✅ 加密用的是工业级GPG,比绝大多数付费密码管理器的加密强度还高
✅ 完全本地运行,不用上传任何数据到第三方服务器,绝无泄露风险
✅ 轻量到极致,安装包只有几十KB,内存占用可以忽略不计
✅ 支持git同步、TOTP二次验证码存储、浏览器插件联动,拓展性拉满
适配系统:Debian 11+/Ubuntu 20.04+/Armbian全版本通用,本文所有命令基于Debian 13(Trixie)验证可直接执行。
二、前置准备:配置GPG密钥
pass的加密完全依赖GPG,所以第一步得先有自己的GPG密钥对,已经有GPG密钥的可以直接跳过这一步。
1. 安装GPG
apt update &&aptinstall gnupg2 -y
2. 生成GPG密钥对
gpg --full-generate-key
跟着提示走就行:
- 输入你的姓名和邮箱地址,记住这个邮箱后面初始化pass要用
- 最后设置一个强密码,这个密码是你所有密码的"主密码",一定要记牢
3. 验证密钥生成成功
gpg --list-secret-keys
输出里能看到刚才生成的密钥信息就算成功,记住uid后面的邮箱地址。
💡 避坑提示:GPG密钥一定要备份好,存到离线U盘里,要是密钥丢了,你存在pass里的所有密码就都找不回来了,神仙也救不了。
三、安装和初始化pass
1. 安装pass
Debian官方源里已经有现成的包,直接装就行:
aptinstall pass -y
如果是Ubuntu或者Armbian系统,命令完全一样。
2. 初始化pass密码库
用刚才GPG密钥对应的邮箱初始化:
pass init 你的GPG密钥邮箱地址
初始化完成后会自动在家目录下创建.password-store目录,所有加密后的密码文件都存在这里。
3. 验证初始化成功
pass list
现在输出是空的,说明密码库已经准备好了。
四、pass核心用法,看完就会用
pass的操作逻辑和Linux的目录结构完全一致,你可以像管理文件一样管理密码,支持按分类建目录,比如work/存工作相关密码,personal/存个人密码。
1. 新增密码
手动添加密码
pass insert 分类/密码名称
# 比如 pass insert work/服务器root密码
输入两次要存储的密码就添加完成了。
自动生成随机强密码
这是我最常用的功能,直接生成16位包含大小写、数字、特殊字符的强密码,不用自己想:
pass generate 分类/密码名称 16
# 比如 pass generate work/某平台管理员密码 16
如果需要生成不含特殊字符的密码(有些平台不支持特殊字符),加-n参数:
pass generate -n 分类/密码名称 16
2. 查看密码
pass show 分类/密码名称
输入GPG主密码后就能看到明文密码,也可以直接把密码复制到剪贴板,不用显示出来:
pass -c 分类/密码名称
复制后剪贴板内容会在45秒后自动清除,防止泄露。
3. 修改密码
pass edit 分类/密码名称
会自动打开默认编辑器修改,保存后自动加密。
4. 删除密码
pass rm 分类/密码名称
确认后就会删除对应的密码文件。
5. 查看所有密码目录结构
pass list
会以树状结构展示所有分类和密码,和tree命令输出一样。
五、进阶用法,效率直接翻倍
1. 用git同步密码库,多设备通用
pass原生支持git版本控制,你可以把密码库推到私有Git仓库,实现多设备同步:
# 初始化git仓库
pass git init
# 添加远程仓库(建议用私有仓库,比如Gitee私有库)
pass git remote add origin 你的私有Git仓库地址
# 每次修改后自动提交
pass gitadd.
pass git commit -m"更新密码"
pass git push origin main
其他设备只要导入同一个GPG密钥,克隆仓库就能用:
git clone 你的私有Git仓库地址 ~/.password-store
💡 避坑提示:一定要用私有仓库,虽然密码是加密的,但也不要推到公共仓库,避免被暴力破解。
2. 支持TOTP二次验证码存储
pass可以当二次验证器用,不用再单独装Google Authenticator了,先装扩展:
aptinstall pass-extension-otp -y
添加TOTP密钥:
pass otp insert 分类/账号名称
查看验证码:
pass otp show 分类/账号名称
同样支持直接复制到剪贴板:
pass otp -c 分类/账号名称
3. 和浏览器联动
装浏览器插件PassFF,就能直接在浏览器里自动填充pass里存的网站账号密码,和Chrome自带的密码填充体验一样,但是数据全在你自己手里。
六、常见问题(踩坑总结)
Q1:GPG密钥丢了怎么办?
A:没救,所有存在pass里的密码都无法解密,所以一定要提前备份GPG密钥,备份命令:
# 导出私钥
gpg --export-secret-keys -a 你的邮箱 > gpg-private.key
# 导出公钥
gpg --export-a 你的邮箱 > gpg-public.key
把这两个文件存到离线安全的地方,丢了真的找不回来。
Q2:忘记GPG主密码了怎么办?
A:同样没救,GPG的加密强度就是这么高,没有后门可以破解,主密码一定要记牢,或者存在离线的安全地方。
Q3:多设备同步出现git冲突怎么办?
A:和普通代码冲突解决方法一样,进入~/.password-store目录,手动解决冲突后提交就行,每个密码都是独立文件,几乎不会出现冲突,除非两台设备同时修改同一个密码。
Q4:pass和Bitwarden、1Password这些付费工具比有什么优劣?
A:优点是完全免费、开源无后门、数据本地可控、轻量无广告;缺点是没有UI,对纯新手不太友好,同步需要自己搭Git仓库,适合有一定Linux基础的用户,特别是运维人员。
七、核心总结
pass是我用过的最符合运维人使用习惯的密码管理器,没有花里胡哨的功能,所有操作都是命令行,安全可控零成本,用习惯了真的离不开。
如果你平时也需要管理大量账号密码,又担心第三方工具的安全问题,强烈建议你试试pass,用一次就知道有多香。
往期推荐
感谢你读到最后,如果觉得有帮助,点个“赞”+“推荐”,“分享”给更多人