作者 | Egidio Docile
譯者 | DarkSun (lujun9972) ? ? ? ? 共計翻譯:77 篇 貢獻時間:98 天
標的
學習在 Linux 上使用 pass 密碼管理器來管理你的密碼
條件
難度
簡單
約定
#
– 執行指定命令需要 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
選項來生成二維碼:
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[2] 譯者:lujun9972 校對:Locez
本文由 LCTT 原創編譯,Linux中國 榮譽推出