Linux中國

在 Linux 終端里管理你的密碼

如今,我們每個人都有幾十個密碼。幸運的是,這些密碼大部分幾乎都是網站的,你可能通過互聯網瀏覽器訪問大部分網站,而許多瀏覽器都有內置的密碼管理器。最流行的互聯網瀏覽器也有一個同步的功能,可以幫助你在各種設備上運行的瀏覽器之間分發密碼,所以當你需要時,絕不會找不到你的登錄信息。如果這不能夠滿足你,還有類似 BitWarden 這樣優秀的開源項目也可以託管你加密後的密碼,確保只有你自己才能解鎖它們。這些方案有助於你輕鬆維護獨特的密碼,我使用這些方便系統來管理一些密碼。但是我的主密碼存儲庫比以上這些方式簡單的多。我主要是使用 pass ,這是一個經典的 UNIX 式密碼管理系統,使用 GnuPG(GPG)作為加密方式,終端是它的主要界面。

安裝 pass

你可以從你的發行版倉庫中安裝 pass 命令。

在 Fedora、Mageia 和類似的發行版上,你可以用你的包管理器來安裝它:

$ sudo dnf install pass

在 Elementary、Mint 和其它基於 Debian 的發行版上:

$ sudo apt install pass

在 macOS 上,你可以使用 Homebrew 來安裝它:

$ brew install pass

設置 GnuPG

在使用 pass 之前,你需要一個有效的 PGP( 良好隱私 Pretty Good Privacy )密鑰。如果你已經維護了一個 PGP 密鑰,你可以跳過這個步驟,或者你可以選擇為使用 pass 而創建一個新的密鑰。最常見的開源 PGP 實現是 GnuPG(GPG),它隨 Linux 一起提供。對於 macOS,你可以從 gpgtools.org、Homebrew 或者 Macports 安裝它。要創建 GnuPG 密碼,運行這個命令:

$ gpg --generate-key

你會被提示輸入你的名字和電子郵件,並且為密鑰創建一個密碼。你的密鑰是一個數字文件,你的密碼只有你自己知道。它倆組合起來能夠「加鎖」和「解鎖」加密信息,比如包含密碼的文件。

GPG 密鑰更像是一個房門鑰匙或者汽車鑰匙,如果你失去了它,它「鎖起來」的任何東西都會變得無法獲得。僅僅知道你的密碼是不夠的。

如果你已經管理了幾個 SSH 密鑰,你可能已經習慣了這一點了。如果你對數字加密密鑰是個新手,可能得花些時間來適應。備份你的 ~/.gnupg 目錄,這樣當你下次心血來潮決定嘗試一個令人興奮的新發行版時,你就不會意外地刪除它。

做一個備份,並保持備份安全。

設置 pass

要開始使用 pass ,你必須初始化一個 密碼倉庫 ,它定義為一個儲存位置,配置為使用特定加密密鑰。你可以通過與密鑰相關聯的名稱或數字指紋來指明要用於密碼存儲的 GPG 密鑰。你自己的名字通常更容易選擇:

$ pass init seth
mkdir: created directory '/home/seth/.password-store/'
Password store initialized for seth

如果你忘記了你的名稱,你可以使用 gpg 命令查看數字指紋和關聯你名稱的密鑰:

$ gpg --list-keys
gpg --list-keys
/home/seth/.gnupg/pubring.kbx
--------------------------pub  ed25519 2022-01-06 [SC] [expires: 2024-01-06]
     2BFF94286461216C907CBA52F067996F13EF10D8
uid  [ultimate] Seth Kenlon <[seth@example.com][7]>
sub  cv25519 2022-01-06 [E] [expires: 2024-01-06]

用指紋初始化密碼庫與用你的名字初始化密碼庫基本相同:

$ pass init 2BFF94286461216C907CBA52F067996F13EF10D8

存儲密碼

使用 pass add 命令添加密碼到你的密碼倉庫:

$ pass add [www.example.com][8]
Enter password for [www.example.com][8]:

提示你鍵入你要添加的密碼。

密碼現在存儲到了你的密碼倉庫中。你可以自己查看一下:

$ ls /root/.password-store/
www.example.com.gpg

當然,這個文件是不可讀的,並且你嘗試對它運行 catless 時,在你的終端上會顯示亂碼(如果擾亂了你的顯示,可以使用 reset 命令來恢復你的終端。)

用 pass 編輯密碼

我使用不同的用戶名稱進行不同的上網活動,所以網站的用戶名常常和密碼同樣重要。pass 是有這個功能的,即使它默認狀態下並不提示你。你可以使用 pass edit 命令添加用戶名到密碼文件:

$ pass edit www.example.com

這會打開一個編輯器(一般是你設置為 EDITOR 或者 VISUAL 環境變數 的編輯器) 顯示 www.example.com 文件的內容。目前,那僅僅是一個密碼,但是你可以添加用戶名甚至網址或者你想要添加的任何信息。它是個加密了的文件,所以你可以把你要放的任何東西放到裡邊。

bd%dc$3a49af49498bb6f31bc964718C
user: seth123
url: example.com

保存文件然後關閉。

從 pass 獲取密碼

要查看密碼文件的內容,使用 pass show 命令:

$ pass show www.example.com
bd%dc$3a49af49498bb6f31bc964718C
user: seth123
url: www.example.org

查找密碼

有時候很難記住一個密碼是歸入到 www.example.com 還是 example.com,又或者一些類似 app.example.com 的網址。此外,一些網站架構使用不同的 URL 來實現不同的網站功能,所以你可能在 www.example.com 網址下填寫過密碼,你同時也用相同的登錄信息在合作網站 www.example.org 下使用過密碼。

如果有疑問,可以使用 grep 命令。pass grep 命令顯示整個搜索項目的實例,無論是在文件名中還是在文件內容中:

$ pass grep example
www.example.com:
url: www.example.org

在瀏覽器中使用 pass

我使用 pass 來獲取互聯網密碼以外的信息,但是網站是我經常需要密碼的地方。我常常在電腦上的某個地方打開一個終端,所以我通過 Alt+Tab 鍵切換到終端用 pass 來獲取信息並不麻煩。但是我並不這麼做是因為有一些插件可以將 pass 與網頁瀏覽器整合在一起。

pass 託管腳本

首先,安裝 pass 託管腳本:

$ curl -sSL github.com/passff/passff-host/release/latest/download/install_host_app.sh

這個腳本放置了一個 Python 腳本,幫助你的瀏覽器訪問你的密碼和 GPG 密碼。用你所用的瀏覽器的名字運行它(或者不寫參數,查看全部選項):

$ bash ./install_host_app.sh firefox

如果你使用多個瀏覽器,你可以為每一個瀏覽器安裝它。

pass 附件

一旦你已經安裝了這個託管程序,你可以為你的瀏覽器安裝一個附件或者擴展。在你的瀏覽器附件或者擴展管理器里搜索 PassFF 插件。

![PassFF](/data/attachment/album/202204/16/145519lzyy12jqqyazzaj7.jpg "PassFF")

安裝了這個附件,然後關閉並重新打開瀏覽器。

導航到一個你在密碼倉庫中存有密碼的網站。在你的登錄文本框右側會顯示一個小小的 「P」 圖標。

![PassFF browser prompt](/data/attachment/album/202204/16/145519g6kqioc99ochccbb.jpg "PassFF browser prompt")

點擊 「P」 按鈕會看到你的密碼倉庫中與你網站名稱匹配的一個列表。

![PassFF browser menu](/data/attachment/album/202204/16/145520wxs180s38ppf2es3.jpg "PassFF browser menu")

點擊「紙和筆」的圖標填寫表單,或者通過「紙飛機」的圖標填寫並自動提交表單。

輕鬆的密碼管理,而且完全整合了!

嘗試用 pass 作為你的 Linux 密碼管理器

對於那些想用日常使用的工具來管理密碼和個人信息的用戶來說,pass 命令是一個很好的選擇。如果你已經依賴 GPG 和終端,那麼你可能會喜歡 pass 系統。對於那些不想讓他們的密碼被束縛在特定程序上的用戶來說,這也是一個重要的選擇。可能你並不只使用一個瀏覽器,或者你不喜歡這種想法,即如果你決定停止使用一個應用程序,可能很難從它那裡提取你的密碼。使用 pass ,你可以在一個 UNIX 式的直接系統中保持對你的秘密的控制。

via: https://opensource.com/article/22/1/manage-passwords-linux-terminal

作者:Seth Kenlon 選題:lujun9972 譯者:hwlife 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國