Pass#

源自 ZX2C4 專案的 標準 UNIX 密碼管理工具


Introduction#

密碼管理應該簡單且遵循 Unix philosophy(Unix哲學)。使用 pass 時,每個密碼都儲存在一個以網站或資源名稱作為檔名的 gpg 加密檔案中。這些加密檔案可以組織成有意義的資料夾層級結構,能夠在不同電腦間複製,並且通常可以使用標準命令列檔案管理工具進行操作。

pass 使管理這些獨立的密碼檔案變得非常方便。所有密碼皆存放於 ~/.password-store 目錄中,並且 pass提 供一組便捷的命令來新增、編輯、生成及提取密碼。它是一個簡短且簡單的shell腳本,能夠暫時將密碼放到剪貼簿中,並使用 git 來追蹤密碼的變更情況。


Install#

Ubuntu / Debian

$ sudo apt-get install pass

MacOS

$ brew install pass

Setting in up#

因為 pass 儲存的密碼會經過 gpg 加密,所以我們需要先產生 GPG keypair

參考 GunPG 筆記

產生 GPG keypair :

$ gpg --full-gen-key
pub   ed25519 2025-11-01 [SC]
      0D6179ABE274C4D38870427FCCAAD972A33DEE8F
uid           [ultimate] User <User@gmail.com>
sub   cv25519 2025-11-01 [E]

我們需要複製 0D6179ABE274C4D38870427FCCAAD972A33DEE8F 這一串 GPG public key

初始化密碼庫:

將剛剛複製的 GPG public key 填入

指令:

$ pass init "0D6179ABE274C4D38870427FCCAAD972A33DEE8F"
Password store initialized for 0D6179ABE274C4D38870427FCCAAD972A33DEE8F

看到 Password store initialized for 0D6179ABE274C4D38870427FCCAAD972A33DEE8F 表示完成


Operate#

列出商店中所有現有的密碼:

$ pass
Password Store
├── Business
│   ├── some-silly-business-site.com
│   └── another-business-site.net
├── Email
│   ├── donenfeld.com
│   └── zx2c4.com
└── France
    ├── bank
    ├── freebox
    └── mobilephone 

顯示密碼

$ pass Email/zx2c4.com
sup3rh4x3rizmynam3

複製到剪貼簿

$ pass -c Email/zx2c4.com
Copied Email/jason@zx2c4.com to clipboard. Will clear in 45 seconds.

插入現有密碼

$ pass insert Business/cheese-whiz-factory
Enter password for Business/cheese-whiz-factory: omg so much cheese what am i gonna do

創建新密碼

$ pass generate Email/jasondonenfeld.com 15
The generated password to Email/jasondonenfeld.com is:
$(-QF&Q=IN2nFBx

刪除密碼

$ pass rm Business/cheese-whiz-factory
rm: remove regular file ‘/home/zx2c4/.password-store/Business/cheese-whiz-factory.gpg’? y
removed ‘/home/zx2c4/.password-store/Business/cheese-whiz-factory.gpg’

Reference#

This docs:

GunPG

Official docs:

www.passwordstore.org

www.gnupg.org