pass是命令行密码管理工具。pass以文件的形式, 存储和管理用gpg加密过的密码文件。

gpg

首先需要gpg生成公钥和密钥,大多Linux和MacOs默认已经安装了gpg,但使用前先查看一下版本,推荐使用2.0.0以上的版本。

1
2
➜ gpg2 --version
gpg (GnuPG) 2.2.27

我们可以通过下面的命令生成,生成过程中,我们可以选择:

  1. 加密方式: RSA and RSA (default)
  2. 密钥长度: 4096
  3. 永不过期: key does not expire
  4. user ID
1
gpg2 --full-gen-key

查看已有的密匙

1
2
3
4
5
6
7
➜ gpg2 -k    
/home/zjh/.gnupg/pubring.kbx
----------------------------
pub   rsa4096 2021-01-02 [SC]
      ****************************************
uid           [ultimate] mike <mike@example.com>
sub   rsa4096 2021-01-02 [E]

当我们有多台设备的时候,我们通过以下命令导出和导入公钥和密钥。

导出公钥

1
gpg2 --armor --export mike@example.com > mike.public.gpg

导出密钥

1
gpg2 --armor --export-secret-keys mike@example.com > mike.secret.gpg

导入公钥和密钥

1
2
gpg2 --import mike.public.gpg
gpg2 --import mike.secret.gpg

pass

大部分系统都支持命令行安装。

1
2
3
4
5
6
7
8
# Arch Linux
sudo pacman -S pass

# ubuntu
sudo apt install pass

# macOS
brew install pass

我们就可以初始化密码仓库了,邮箱用于标识gpg的用户ID,告诉pass用那个公钥加密,然后用哪个密钥解密。

1
pass init mike@example.com

导入firefox密码

导入firefox密码,最简单的办法是从github仓库firefox_decrypt下载python文件firefox_decrypt.py,执行下面的命令

其中参数--pass-username-prefix部分是为了兼容browserpass

1
python firefox_decrypt.py --format pass --pass-username-prefix 'login: '

导入chrome密码

chrome密码可以导出成csv文件。具体参考:https://support.google.com/chrome/answer/95606#see

然后我们需要安装工具pass-import,具体如何安装,这里仅介绍Arch Linux,其他更多查看github上的README

1
2
3
git clone https://aur.archlinux.org/pass-import.git
cd pass-import
makepkg -si

安装成功之后,将chrome的密码导入pass密码仓库。

1
pass import chrome chrome-password.csv

git

初始化

1
2
3
pass git init
pass git remote add origin git@gitee.com:org/mike-password-sotre.git
pass git push -u origin master

clone

1
pass git clone git@gitee.com:org/mike-password-sotre.git

qtpass

pass的GUI工具

1
2
3
4
5
6
7
8
# Arch
sudo pacman -S qtpass

# ubuntu
sudo apt install qtpass

# macOS
brew install qtpass

browserpass

分为两个部分

Arch linux

1
2
sudo pacman -S browserpass
sudo pacman -S browserpass-firefox

macOS

1
2
3
4
brew tap amar1729/formulae
brew install browserpass

PREFIX='/usr/local/opt/browserpass' make hosts-firefox-user -f /usr/local/opt/browserpass/lib/browserpass/Makefile

添加文件~/.gnupg/gpg-agent.conf

1
pinentry-program /usr/local/bin/pinentry-mac

重启gpg-agent

1
gpgconf --kill gpg-agent

Thank you