使用 pass 密碼管理器管理你的密碼
目標
學習在 Linux 上使用 pass 密碼管理器來管理你的密碼
條件
- 需要 root 許可權來安裝需要的包
難度
簡單
約定
#
- 執行指定命令需要 root 許可權,可以是直接使用 root 用戶來執行或者使用sudo
命令來執行$
- 使用普通的非特權用戶執行指定命令
介紹
如果你有根據不同的意圖設置不同密碼的好習慣,你可能已經感受到需要一個密碼管理器的必要性了。在 Linux 上有很多選擇,可以是專有軟體(如果你敢用的話)也可以是開源軟體。如果你跟我一樣喜歡簡潔的話,你可能會對 pass
感興趣。
第一步
pass 作為一個密碼管理器,其實際上是一些你可能早已每天使用的、可信賴且實用的工具的一種封裝,比如 gpg
和 git
。雖然它也有圖形界面,但它專門設計能成在命令行下工作的:因此它也可以在 headless 機器上工作(LCTT 譯註:根據 wikipedia 的說法,所謂 headless 是指沒有顯示器、鍵盤和滑鼠的機器,一般通過網路鏈接來控制)。
安裝
pass 在主流的 Linux 發行版中都是可用的,你可以通過包管理器安裝:
Fedora
# dnf install pass
RHEL 和 CentOS
pass 不在官方倉庫中,但你可以從 epel
中獲取道它。要在 CentOS7 上啟用後面這個源,只需要執行:
# yum install epel-release
然而在 Red Hat 企業版的 Linux 上,這個額外的源是不可用的;你需要從 EPEL 官方網站上下載它。
Debian 和 Ubuntu
# apt-get install pass
Arch Linux
# pacman -S pass
初始化密碼倉庫
安裝好 pass
後,就可以開始使用和配置它了。首先,由於 pass
依賴於 gpg
來對我們的密碼進行加密並以安全的方式進行存儲,我們必須準備好一個 gpg 密鑰對。
首先我們要初始化密碼倉庫:這就是一個用來存放 gpg 加密後的密碼的目錄。默認情況下它會在你的 $HOME
創建一個隱藏目錄,不過你也可以通過使用 PASSWORD_STORE_DIR
這一環境變數來指定另一個路徑。讓我們運行:
$ pass init
然後 password-store
目錄就創建好了。現在,讓我們來存儲我們第一個密碼:
$ pass edit mysite
這會打開默認文本編輯器,我么只需要輸入密碼就可以了。輸入的內容會用 gpg 加密並存儲為密碼倉庫目錄中的 mysite.gpg
文件。
pass
以目錄樹的形式存儲加密後的文件,也就是說我們可以在邏輯上將多個文件放在子目錄中以實現更好的組織形式,我們只需要在創建文件時指定存在哪個目錄下就行了,像這樣:
$ pass edit foo/bar
跟上面的命令一樣,它也會讓你輸入密碼,但是創建的文件是放在密碼倉庫目錄下的 foo
子目錄中的。要查看文件組織結構,只需要不帶任何參數運行 pass
命令即可:
$ pass
Password Store
├── foo
│ └── bar
└── mysite
若想修改密碼,只需要重複創建密碼的操作就行了。
獲取密碼
有兩種方法可以獲取密碼:第一種會顯示密碼到終端上,方法是運行:
pass mysite
然而更好的方法是使用 -c
選項讓 pass
將密碼直接拷貝到剪切板上:
pass -c mysite
這種情況下剪切板中的內容會在 45
秒後自動清除。兩種方法都會要求你輸入 gpg 密碼。
生成密碼
pass
也可以為我們自動生成(並自動存儲)安全密碼。假設我們想要生成一個由 15 個字元組成的密碼:包含字母,數字和特殊符號,其命令如下:
pass generate mysite 15
若希望密碼只包含字母和數字則可以是使用 --no-symbols
選項。生成的密碼會顯示在屏幕上。也可以通過 --clip
或 -c
選項讓 pass
把密碼直接拷貝到剪切板中。通過使用 -q
或 --qrcode
選項來生成二維碼:
從上面的截屏中可看出,生成了一個二維碼,不過由於運行該命令時 mysite
的密碼已經存在了,pass
會提示我們確認是否要覆蓋原密碼。
pass
使用 /dev/urandom
設備作為(偽)隨機數據生成器來生成密碼,同時它使用 xclip
工具來將密碼拷貝到粘帖板中,而使用 qrencode
來將密碼以二維碼的形式顯示出來。在我看來,這種模塊化的設計正是它最大的優勢:它並不重複造輪子,而只是將常用的工具包裝起來完成任務。
你也可以使用 pass mv
、pass cp
和 pass rm
來重命名、拷貝和刪除密碼倉庫中的文件。
將密碼倉庫變成 git 倉庫
pass
另一個很棒的功能就是可以將密碼倉庫當成 git 倉庫來用:通過版本管理系統能讓我們管理密碼更方便。
pass git init
這會創建 git 倉庫,並自動提交所有已存在的文件。下一步就是指定跟蹤的遠程倉庫了:
pass git remote add <name> <url>
我們可以把這個密碼倉庫當成普通倉庫來用。唯一的不同點在於每次我們新增或修改一個密碼,pass
都會自動將該文件加入索引並創建一個提交。
pass
有一個叫做 qtpass
的圖形界面,而且也支持 Windows 和 MacOs。通過使用 PassFF
插件,它還能獲取 firefox 中存儲的密碼。在它的項目網站上可以查看更多詳細信息。試一下 pass
吧,你不會失望的!
via: https://linuxconfig.org/how-to-organize-your-passwords-using-pass-password-manager
作者:Egidio Docile 譯者:lujun9972 校對:Locez
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive