在Linux終端管理你的密碼!
現(xiàn)在是互聯(lián)網(wǎng)時(shí)代,我們每天都要跟各種 APP 、網(wǎng)站打交道,而這些東西基本上都需要注冊(cè)才可以使用。
但是賬號(hào)一多,我們自己都經(jīng)常記不清對(duì)應(yīng)的密碼了。有些小伙伴就一把梭,所有的賬號(hào)密碼都是一樣。但這樣操作的風(fēng)險(xiǎn)顯而易見(jiàn),一旦密碼泄露,你所有的賬號(hào)都會(huì)陷入風(fēng)險(xiǎn)之中!
在瀏覽器上,我們有 1Password、Dashlane、RoboForm,等等非常優(yōu)秀的密碼管理軟件,但缺點(diǎn)是基本上都需要收費(fèi)(不,這是我的缺點(diǎn))~
本文介紹一款在 Linux 終端上就可以使用的密碼管理器 pass ,這是一個(gè)經(jīng)典的 UNIX 風(fēng)格的密碼管理系統(tǒng),使用 GnuPG (GPG) 進(jìn)行加密,小巧好用!
一、安裝pass工具
pass 在很多發(fā)行版軟件庫(kù)里都有,使用各自的安裝命令即可完成安裝。
在 Ubuntu、Elementary 等基于 Debian 的發(fā)行版上,使用 apt 命令安裝:
$ sudo apt install pass
在 Fedora 及類(lèi)似的發(fā)行版上,可以使用 dnf 命令安裝:
$ sudo dnf install pass
在 macOS 上,可以使用 Homebrew 安裝:
$ brew install pass
二、配置GnuPG
前文提到 pass 工具是使用 GnuPG 進(jìn)行加密,所以在使用 pass 之前,我們需要一個(gè)有效的 PGP(Pretty Good Privacy)密鑰。如果你已經(jīng)有了 PGP 密鑰,則可以跳過(guò)此步驟。
要?jiǎng)?chuàng)建 GnuPG 密鑰,需要運(yùn)行以下命令:
$ gpg --generate-key
系統(tǒng)會(huì)提示你輸入姓名和電子郵件地址,并為密鑰創(chuàng)建密碼。你的密鑰是一個(gè)數(shù)字文件,密碼只有你自己知道。之后我們就可以使用 pass 工具鎖定和解鎖加密信息,例如一個(gè)包含有密碼的文件。
GPG 密鑰非常重要,如果你失去了它,任何被它鎖住的東西都將變得無(wú)法解鎖,即使知道你的密碼。所以,你一定要備份你的 ~/.gnupg 目錄,這樣下次如果重裝系統(tǒng),也不會(huì)意外刪除它。
作為程序員,一定要有備份意識(shí)。
三、配置pass工具
剛開(kāi)始使用 pass 時(shí),需要初始化密碼倉(cāng)庫(kù),這個(gè)密碼倉(cāng)庫(kù)可以理解為將來(lái)你用來(lái)存儲(chǔ)密碼的地方。
你可以使用以下命令初始化 pass 工具:
$ pass init alvin
mkdir: created directory '/home/alvin/.password-store/'
Password store initialized for alvin
在這里,alvin 就是你的名字,因?yàn)榈綍r(shí)可以有多人使用這個(gè)工具,所以需要區(qū)分一下。
如果你忘記了你初始化時(shí)所使用的名字,可以使用以下 gpg 命令查看與你的密鑰關(guān)聯(lián)的數(shù)字指紋和名稱(chēng):
$ 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工具存儲(chǔ)密碼
可以使用 pass add 命令將密碼添加到你的密碼存儲(chǔ)區(qū):
$ pass add www.example.com
Enter password for www.example.com:
按下回車(chē)后,會(huì)提示你輸入要添加的密碼。
輸好密碼后,密碼將存儲(chǔ)在你的密碼倉(cāng)庫(kù)中,你可以看一眼這個(gè)文件:
$ ls /root/.password-store/
www.example.com.gpg
當(dāng)然,該文件是不可讀的,如果你嘗試運(yùn)行 cat 或 less 命令來(lái)查看,那么你會(huì)看到一堆亂碼。
2. 使用pass工具編輯密碼
常在網(wǎng)上走,哪有不泄密。所以,為了防止撞庫(kù),最穩(wěn)妥的方式就是為不同網(wǎng)站設(shè)置不同的賬號(hào)和密碼。直接使用 pass add 命令的話(huà),默認(rèn)只添加密碼,但我們可以人工添加用戶(hù)名。
使用 pass edit 命令可以將用戶(hù)名添加到密碼文件:
$ pass edit www.example.com
敲下回車(chē)后,密碼文件將被打開(kāi)。在這里,你可以添加用戶(hù)名,甚至是另一個(gè) URL 或其它想要的信息。這是一個(gè)加密文件,因此你可以記錄任何你想加密的信息。
bd%dc$3a49af49498bb6f31bc964718C
user: alvin123
url: example.com
3. 從pass中獲取密碼
想要查看密碼文件的內(nèi)容,可以使用 pass show 命令:
$ pass show www.example.com
bd%dc$3a49af49498bb6f31bc964718C
user: alvin123
url: www.example.org
4. 在pass工具中搜索密碼
有時(shí)候,你有可能忘記網(wǎng)站的域名是啥,但有可能零星記得網(wǎng)址里的某些單詞,那么就可以使用 pass grep 命令以文件名或文件內(nèi)容顯示搜索詞的所有結(jié)果:
$ pass grep example
www.example.com:
url: www.example.org
五、在瀏覽器上使用pass工具
現(xiàn)在我們可以安全存儲(chǔ)顯示密碼了,但這樣還是很不方便。我們總不可能在上網(wǎng)的時(shí)候,需要填密碼時(shí)還要打開(kāi)終端,再找到密碼,然后再填進(jìn)密碼框,簡(jiǎn)直讓人抓狂!
好在 pass 工具有對(duì)應(yīng)的腳本及工具可以讓我們更方便使用。
1. pass腳本
首先,安裝 pass 腳本:
$ curl -sSL github.com/passff/passff-host/release/latest/download/install_host_app.sh
這是一個(gè) Python 腳本,它可以幫助你的瀏覽器訪(fǎng)問(wèn)你的密碼倉(cāng)庫(kù)和 GPG 密鑰。安裝時(shí),需要與所使用的瀏覽器的名稱(chēng)一起運(yùn)行:
$ bash ./install_host_app.sh firefox
如果你使用多個(gè)瀏覽器,那么可以為每個(gè)瀏覽器安裝這個(gè)腳本。
2. pass插件
安裝完腳本后,接下來(lái)就需要為瀏覽器安裝 pass 插件。你可以在瀏覽器的插件中心找到 PassFF 插件,然后一鍵安裝即可。
安裝完插件之后,關(guān)閉并重新啟動(dòng)瀏覽器。
然后,我們?cè)俅蜷_(kāi)一個(gè)你存儲(chǔ)過(guò)密碼對(duì)應(yīng)的站點(diǎn),你會(huì)發(fā)現(xiàn)登錄文本字段右側(cè)有一個(gè)小 P 圖標(biāo)。
單擊 P 按鈕可查看密碼倉(cāng)庫(kù)中匹配的站點(diǎn)名稱(chēng)列表。
點(diǎn)擊筆和紙圖標(biāo)填寫(xiě)表格或點(diǎn)擊紙飛機(jī)圖標(biāo)填寫(xiě)并自動(dòng)提交表格。
搞定!