在Linux终端管理你的密码!
大家好,我是良许。
现在是互联网时代,我们每天都要跟各种 APP 、网站打交道,而这些东西基本上都需要注册才可以使用。
但是账号一多,我们自己都经常记不清对应的密码了。有些小伙伴就一把梭,所有的账号密码都是一样。但这样操作的风险显而易见,一旦密码泄露,你所有的账号都会陷入风险之中!
在浏览器上,我们有 1Password、Dashlane、RoboForm,等等非常优秀的密码管理软件,但缺点是基本上都需要收费(不,这是我的缺点)~
本文介绍一款在 Linux 终端上就可以使用的密码管理器 pass ,这是一个经典的 UNIX 风格的密码管理系统,使用 GnuPG (GPG) 进行加密,小巧好用!
一、安装pass工具
pass 在很多发行版软件库里都有,使用各自的安装命令即可完成安装。
在 Ubuntu、Elementary 等基于 Debian 的发行版上,使用 apt 命令安装:
$ sudo apt install pass
在 Fedora 及类似的发行版上,可以使用 dnf 命令安装:
$ sudo dnf install pass
在 macOS 上,可以使用 Homebrew 安装:
$ brew install pass
二、配置GnuPG
前文提到 pass 工具是使用 GnuPG 进行加密,所以在使用 pass 之前,我们需要一个有效的 PGP(Pretty Good Privacy)密钥。如果你已经有了 PGP 密钥,则可以跳过此步骤。
要创建 GnuPG 密钥,需要运行以下命令:
$ gpg --generate-key
系统会提示你输入姓名和电子邮件地址,并为密钥创建密码。你的密钥是一个数字文件,密码只有你自己知道。之后我们就可以使用 pass 工具锁定和解锁加密信息,例如一个包含有密码的文件。
GPG 密钥非常重要,如果你失去了它,任何被它锁住的东西都将变得无法解锁,即使知道你的密码。所以,你一定要备份你的 ~/.gnupg 目录,这样下次如果重装系统,也不会意外删除它。
作为程序员,一定要有备份意识。
三、配置pass工具
刚开始使用 pass 时,需要初始化密码仓库,这个密码仓库可以理解为将来你用来存储密码的地方。
你可以使用以下命令初始化 pass 工具:
$ pass init alvin
mkdir: created directory '/home/alvin/.password-store/'
Password store initialized for alvin
在这里,alvin 就是你的名字,因为到时可以有多人使用这个工具,所以需要区分一下。
如果你忘记了你初始化时所使用的名字,可以使用以下 gpg 命令查看与你的密钥关联的数字指纹和名称:
$ gpg --list-keys
gpg --list-keys
/home/alvin/.gnupg/pubring.kbx
-----------------------------
pub ed25519 2022-01-06 [SC] [expires: 2024-01-06]2BFF94286461216C907CBA52F067996F13EF10D8
uid [ultimate] Alvin Yan <alvin@example.com>
sub cv25519 2022-01-06 [E] [expires: 2024-01-06]
四、pass工具基本使用方法
1. 使用pass工具存储密码
可以使用 pass add 命令将密码添加到你的密码存储区:
$ pass add www.example.com
Enter password for www.example.com:
按下回车后,会提示你输入要添加的密码。
输好密码后,密码将存储在你的密码仓库中,你可以看一眼这个文件:
$ ls /root/.password-store/
www.example.com.gpg
当然,该文件是不可读的,如果你尝试运行 cat 或 less 命令来查看,那么你会看到一堆乱码。
2. 使用pass工具编辑密码
常在网上走,哪有不泄密。所以,为了防止撞库,最稳妥的方式就是为不同网站设置不同的账号和密码。直接使用 pass add 命令的话,默认只添加密码,但我们可以人工添加用户名。
使用 pass edit 命令可以将用户名添加到密码文件:
$ pass edit www.example.com
敲下回车后,密码文件将被打开。在这里,你可以添加用户名,甚至是另一个 URL 或其它想要的信息。这是一个加密文件,因此你可以记录任何你想加密的信息。
bd%dc$3a49af49498bb6f31bc964718C
user: alvin123
url: example.com
3. 从pass中获取密码
想要查看密码文件的内容,可以使用 pass show 命令:
$ pass show www.example.com
bd%dc$3a49af49498bb6f31bc964718C
user: alvin123
url: www.example.org
4. 在pass工具中搜索密码
有时候,你有可能忘记网站的域名是啥,但有可能零星记得网址里的某些单词,那么就可以使用 pass grep 命令以文件名或文件内容显示搜索词的所有结果:
$ pass grep example
www.example.com:
url: www.example.org
五、在浏览器上使用pass工具
现在我们可以安全存储显示密码了,但这样还是很不方便。我们总不可能在上网的时候,需要填密码时还要打开终端,再找到密码,然后再填进密码框,简直让人抓狂!
好在 pass 工具有对应的脚本及工具可以让我们更方便使用。
1. pass脚本
首先,安装 pass 脚本:
$ curl -sSL github.com/passff/passff-host/release/latest/download/install_host_app.sh
这是一个 Python 脚本,它可以帮助你的浏览器访问你的密码仓库和 GPG 密钥。安装时,需要与所使用的浏览器的名称一起运行:
$ bash ./install_host_app.sh firefox
如果你使用多个浏览器,那么可以为每个浏览器安装这个脚本。
2. pass插件
安装完脚本后,接下来就需要为浏览器安装 pass 插件。你可以在浏览器的插件中心找到 PassFF 插件,然后一键安装即可。

安装完插件之后,关闭并重新启动浏览器。
然后,我们再打开一个你存储过密码对应的站点,你会发现登录文本字段右侧有一个小 P 图标。

单击 P 按钮可查看密码仓库中匹配的站点名称列表。

点击笔和纸图标填写表格或点击纸飞机图标填写并自动提交表格。
搞定!
学习编程,千万不要急于求成,一定要多读一些经典书籍,多看源码,多下苦功夫去死磕代码,这样技术才能长进。给大家分享一些程序员必读经典书籍,一定要多读几遍:

有收获?希望老铁们来个三连击,给更多的人看到这篇文章
推荐阅读:
- 干货 | 程序员进阶架构师必备资源免费送
- 刷题 | LeetCode算法刷题神器,看完 BAT 随你挑!
欢迎关注我的博客:良许Linux教程网,满满都是干货!
相关文章:
在Linux终端管理你的密码!
大家好,我是良许。 现在是互联网时代,我们每天都要跟各种 APP 、网站打交道,而这些东西基本上都需要注册才可以使用。 但是账号一多,我们自己都经常记不清对应的密码了。有些小伙伴就一把梭,所有的账号密码都是一样。…...
【设计模式】策略模式在Java工程中应用
在之前的文章中,曾经给大家介绍过策略模式:【设计模式】策略模式,在该篇文章中,我们曾很清楚的说到,策略模式主要解决的问题是:在有多种算法相似的情况下,解决使用 if...else 所带来的复杂和难以…...
Linux驱动开发工程师需要掌握哪些技能?
一、前言 Linux驱动开发是一项高度技术性的工作,需要深厚的编程技能和对计算机硬件的深入理解。随着物联网、人工智能等领域的快速发展,Linux驱动开发工程师的需求日益增加。在这篇文章中,我将为您介绍一条Linux驱动开发工程师的学习路线&am…...
【人脸识别】FROM:提升遮挡状态下的人脸识别效果
论文题目:《End2End Occluded Face Recognition by Masking Corrupted Features》 论文地址:https://arxiv.org/pdf/2108.09468v3.pdf 代码地址:https://github.com/haibo-qiu/from 1.前言 人脸识别技术已经取得了显著的进展,主要…...
浏览器缓存
什么是缓存? 当第一次访问网站的时候,比如www.baidu.com,电脑会图片,文件等下载下来,当第二次访问网站的时候,网站就会直接被加载出来. 缓存的好处? 减轻服务器压力,减少请求的放松.提高性能,在本地打开资源肯定比在服务器上获取要快减少宽带的消耗,当我们使用缓存时,只会…...
【软考 系统架构设计师】论文范文③ 论数据访问层设计技术及其应用
>>回到总目录<< 文章目录 论数据访问层设计技术及其应用范文摘要正文论数据访问层设计技术及其应用 在信息系统的开发与建设中,分层设计是一种常见的架构设计方法,区分层次的目的是为了实现“高内聚低耦合”的思想。分层设计能有效简化系统复杂性,使设计结构清…...
802.11 MCS 的最低SNR分析
常常看到这样的表格: 那么这个SNR如何而来? 看看RSSI和SNR的关系,它们之间隔了一个noise floor。从表格看得出,这个底噪在-80~-90之间。 而SNR的核心,也有类似的原因,它和BER有关。...
用于C++的对象关系映射库—YB.ORM
1 介绍YB.ORM YB.ORM 旨在简化与关系数据库交互的 C 应用程序的开发。 对象关系映射器(ORM) 通过将数据库表映射到类并将表行映射到应用程序中的对象来工作,这种方法可能不是对每个数据库应用程序都是最佳的,但它被证明在需要复杂逻辑和事务处理的应用程…...
Cesium 100K数据加载 支持弹窗 动态更改位置
前言:今天总结关于point、label、billboard海量数据加载。后续会研究下大量model加载以及大bim(几百G上T)模型记载 海量点加载 弹窗 加载点位时,不加载弹窗。点击点位时在加载弹窗,及有效的减少加载量,优化性能。 const handler …...
MySQL管理表
在创建表时需要提前了解mysql里面的数据类型 常见的数据类型 创建表 创建表方式1: 格式: CREATE TABLE [IF NOT EXISTS] 表名( 字段1, 数据类型 [约束条件] [默认值], 字段2, 数据类型 [约束条件] [默认值], 字段3, 数据类型 [约束条件] [默认值], ………...
【Java 面试合集】打印一个int整数的32位表示
打印一个int整数的32位表示 1. 概述 嗨,大家好【Java 面试合集】又来了,今天给大家分享的主题是打印一个int整数的32位表示. 2. 32位分析 2.1 为什么是32位呢 不知道看到这篇文章的各位是否都知道,一个int类型的表示方式就是32位呢&#x…...
这样在管理后台里实现 403 页面实在是太优雅了
前言403 页面通常表示无权限访问,与 404 页面代表着不同含义。而大部分管理后台框架仅提供了 404 页面的支持,但却忽略了对 403 页面的处理,有的框架虽然也有对 403 页面的处理,但处理效果却不尽人意。那怎么样的 403 页面才是即好…...
c++提高篇——STL常用算法
STL常用算法一、常用遍历算法一、for_each 遍历容器二、transform 搬运容器到另一个容器中二、常用查找算法一、find二、find_if三、adjacent_find四、binary_search五、count六、count_if三、常用排序算法一、sort二、random_shuffle三、 merage四、reverse四、常用拷贝和替换…...
Materials - DistanceField Nodes
以前的相关笔记,归档发布;距离场相关节点:DistanceToNearestSurface节点:求出传入的Position位置到最近的面的距离并输出,在没有Position输入的时候,默认值会直接使用World Position:Position的…...
【ARMv8 编程】ARMv8 指令集介绍
ARMv8 架构中引入的最重要的变化之一是增加了 64 位指令集。该指令集补充了现有的 32 位指令集架构。这种增加提供了对 64 位宽整数寄存器和数据操作的访问,以及使用 64 位长度的内存指针的能力。新指令被称为 A64,以 AArch64 执行状态执行。ARMv8 还包括…...
大数据之Phoenix基本介绍
文章目录前言一、Phoenix简介二、Phoenix入门(一)创建表语法(二)查看表信息(三)删除表(四)大小写问题前言 #博学谷IT学习技术支持# 上篇文章介绍了Phoenix环境搭建,点击…...
算法leetcode|38. 外观数列(多语言实现)
文章目录38. 外观数列:样例 1:样例 2:提示:分析:题解:rustgocpythonjava38. 外观数列: 给定一个正整数 n ,输出外观数列的第 n 项。 「外观数列」是一个整数序列,从数字…...
异步交互的关键——Ajax
文章目录1,Ajax 概述1.1 作用1.2 同步和异步1.3 案例1.3.1 分析1.3.2 后端实现1.3.3 前端实现2,axios2.1 基本使用2.2 快速入门2.2.1 后端实现2.2.2 前端实现2.3 请求方法别名最后说一句1,Ajax 概述 AJAX (Asynchronous JavaScript And XML):异步的 Jav…...
Android自定义View实现打钩签到动画
效果图实现原理我们看实现的动画效果,其实是分为1. 绘制未选中状态图形(圆弧和对号)2. 绘制选中状态圆弧的旋转的动画3. 绘制选中状态圆弧向中心收缩铺满动画4. 绘制选中状态对号5. 绘制选中状态下圆的放大回弹动画6. 暴露接口接口回调传递选…...
python+pytest接口自动化(3)-接口测试一般流程及方法
首先我们要明确,通常所接口测试其实就属于功能测试,主要校验接口是否实现预定的功能,虽然有些情况下可能还需要对接口进行性能测试、安全性测试。在学习接口自动化测试之前,我们先来了解手工接口测试怎样进行。URL组成为了更好的理…...
AI代理如何通过MCP协议实现DeFi自动化操作与安全交互
1. 项目概述:当DeFi遇上AI代理,一场链上金融的自动化革命如果你和我一样,在DeFi(去中心化金融)世界里摸爬滚打了好几年,从早期的流动性挖矿到后来的各种收益聚合器,一个深刻的体会是:…...
爱搜索 GEO 营销系统实效展示与能力验证
在当前的数字营销环境中,许多企业发现传统的 SEO 手段在应对 AI 驱动的搜索场景时显得力不从心。当潜在客户向大模型提问“哪家装修公司更靠谱”或“推荐几家铝板输送机厂家”时,如果品牌未能出现在 AI 生成的答案中,就意味着失去了最精准的流…...
Swagger Skills:让OpenAPI文档活起来,实现自动化契约测试与场景编排
1. 项目概述:一个为Swagger API文档注入“技能”的利器如果你是一名后端开发者,或者经常需要与API打交道,那么Swagger(现在更常被称为OpenAPI)对你来说一定不陌生。它通过一个标准的YAML或JSON文件,清晰地描…...
USGv6新规驱动IPv6单栈部署:从协议原理到实战测试的全面指南
1. 从USGv6新版规范看IPv6单栈部署的必然性与实战准备最近,行业里关于IPv6单栈网络(IPv6-Only)的讨论又热了起来。这阵风潮的源头,是美国国家标准与技术研究院(NIST)近期更新了其“美国政府IPv6配置文件”&…...
作为一个网聊经常冷场的人,我试了试几款聊天回复神器
平时在线下跟人沟通还好,但一到微信或者Soul这种线上聊天环境,我就特别容易卡壳。尤其是遇到对方发来一些带有情绪的话,我经常不知道怎么接,打了一堆字又默默删掉,最后回个“哈哈”或者“早点休息”,硬生生…...
3-5年经验程序员注意:这3大岗位年薪飙升至百万,你中招了吗?
昨天晚上,有个群友说:我看 boss 直聘已经有些公司明确要求要 AI 经验了,之前是大厂先搞,现在中小开始反应过来了。是的,这个趋势已经越来越明显。不只是招聘,春节以后,很多公司推 AI 的力度也变…...
从温度计误差到数字设计:测量不确定性与工程信任链构建
1. 从“温控失灵”到“测量哲学”:一个硬件工程师的日常反思前几天,我家那个服役多年的老式温控器彻底“罢工”了——液晶屏花得连温度数字都看不清。我找来熟悉的暖通师傅奥兰,换上了一台崭新的数字温控器。本以为问题就此解决,但…...
半导体制造中的光学邻近校正(OPC)优化技术与实践
1. 光学邻近校正(OPC)在半导体制造中的关键作用在32nm以下节点的半导体制造中,光学邻近效应已成为制约光刻精度的首要瓶颈。当特征尺寸远小于曝光波长时(例如193nm光刻下的22nm节点),光线衍射会导致图案边缘…...
【Twitter算法适配型Prompt库】:2024Q2官方推荐权重结构解析+ChatGPT生成内容通过率提升67%的12个黄金句式
更多请点击: https://intelliparadigm.com 第一章:Twitter算法适配型Prompt库的演进逻辑与2024Q2权重变革本质 算法信号层重构驱动Prompt范式迁移 2024年第二季度,X(原Twitter)平台正式将Engagement Velocity Ratio&…...
基于PM波谱的二级海浪三维数值建模与可视化仿真
摘要:海浪的数值建模与三维可视化仿真在海洋工程、船舶设计及海上作业安全评估等领域具有重要的应用价值。针对二级海况(有义波高约 1.0 m、风速约7 m/s)条件下的不规则海浪模拟需求,本文提出了一种基于Pierson-Moskowitz…...
