如何在Linux上使用命令行管理密碼?
在基于密碼的認(rèn)證在網(wǎng)絡(luò)盛行的今天,你可能需要或者已經(jīng)使用了某種密碼管理工具來(lái)跟蹤管理你正在使用的所有密碼。有各種各樣的在線或離線服務(wù)或者軟件工具用于完成此類事情,而這些工具因復(fù)雜程度、用戶界面或者目標(biāo)環(huán)境(如企業(yè)或終端用戶)的不同而各不相同。例如,有一些是為終端用戶開發(fā)基于圖形化的密碼管理器,如KeePass(X)。
對(duì)于那些不想要依賴圖形化進(jìn)行密碼管理的用戶,筆者將會(huì)講述如何在命令行下使用 pass來(lái)管理密碼,這是一個(gè)簡(jiǎn)單的用于命令行管理密碼的工具。
該密碼工具實(shí)際上是一個(gè)shell腳本編寫的前端,其中調(diào)用了幾個(gè)其它工具(如gpg,pwgen,git,xsel)來(lái)使用OpenGPG管理用戶的密碼信息。各個(gè)密碼使用gpg工具進(jìn)行加密,并存儲(chǔ)到本地密碼倉(cāng)庫(kù)中。密碼信息可以通過(guò)終端或者自清除的剪貼板工具使用。
該密碼工具相當(dāng)靈活,并且使用起來(lái)及其簡(jiǎn)單。你可以將每個(gè)密碼信息存儲(chǔ)到一個(gè)OpenGPG保護(hù)的普通文本文件,并且將不同的密碼文件分組多個(gè)類目中。它支持bash自動(dòng)補(bǔ)全特性,因此可以很方便地使用TAB鍵來(lái)補(bǔ)全命令或者很長(zhǎng)的密碼名稱。
在Linux上安裝pass
在Debian,Ubuntu或者Linux Mint上安裝pass:
- $ sudo apt-get install pass
- $ echo "source /etc/bash_completion.d/password-store" >> ~/.bashrc
在Fedora上安裝pass:
- $ sudo yum install pass
- $ echo "source /etc/bash_completion.d/password-store" >> ~/.bashrc
在CentOS上安裝pass,首先啟用EPEL倉(cāng)庫(kù),然后執(zhí)行以下命令:
- $ sudo yum install pass
- $ echo "source /etc/bash_completion.d/password-store" >> ~/.bashrc
在Archlinux上安裝pass:
- $ sudo pac -S pass
- $ echo "source /etc/bash_completion.d/password-store" >> ~/.bashrc
初始化本地密碼倉(cāng)庫(kù)
在使用密碼工具之前,你需要執(zhí)行一次初始化步驟,該步驟包括創(chuàng)建一個(gè)GPG密鑰對(duì)(如果你還沒(méi)有)以及一個(gè)本地密碼倉(cāng)庫(kù)。
首先,通過(guò)以下步驟創(chuàng)建一個(gè)GPG密鑰對(duì)(即:公鑰/私鑰)。如果已經(jīng)創(chuàng)建了自己的GPG密鑰對(duì),可以跳過(guò)此步驟。
- $ gpg --gen-key
執(zhí)行該步驟,會(huì)詢問(wèn)你如下問(wèn)題。如果你不確定,可以選擇接受默認(rèn)回答。作為密鑰生成部分,你將要為你的密鑰創(chuàng)建一個(gè)加密口令,這個(gè)口令實(shí)際上是你訪問(wèn)存儲(chǔ)在本地密碼倉(cāng)庫(kù)中的任何密碼信息時(shí)的主密碼。成功創(chuàng)建密鑰對(duì)后,創(chuàng)建的密鑰對(duì)會(huì)存儲(chǔ)在~/.gnupg目錄中。
接下來(lái),運(yùn)行以下命令來(lái)初始化本地密碼倉(cāng)庫(kù)。下面的,輸入之前創(chuàng)建密鑰對(duì)時(shí)的關(guān)聯(lián)電子郵件地址。
- $ pass init <gpg-id>
該命令會(huì)在~/.password-store目錄中創(chuàng)建一個(gè)密碼倉(cāng)庫(kù)。
在終端使用pass管理密碼
插入新密碼信息
要將新的密碼信息插入到本地密碼倉(cāng)庫(kù)中,請(qǐng)遵循以下命令格式:
- $ pass insert <password-name>
是你定義的專有名稱,并且可以分級(jí)(如 "finance/tdbank", "online/gmail.com")。在這種情況下,密碼信息可以存儲(chǔ)到~/.password-store目錄下對(duì)應(yīng)的子目錄中。
如果你想要分多行插入密碼信息,請(qǐng)像以下命令一樣使用"-m"選項(xiàng)。以你自己喜歡的任何格式來(lái)輸入密碼信息,然后按Ctrl+D來(lái)結(jié)束。
- $ pass insert <password-name> -m
查看所有密碼名稱列表
要查看所有存儲(chǔ)的密碼名稱列表,只需輸入"pass"命令:
- $ pass
從密碼倉(cāng)庫(kù)中取回密碼信息
要訪問(wèn)特定密碼列表中的內(nèi)容,只需使用以下命令:
- $ pass <password-name>
例如:
- $ pass email/gmail.com
會(huì)要求你輸入密碼口令來(lái)解鎖密鑰。
如果你想要將密碼復(fù)制到剪貼板,而不是顯示到終端屏幕上,使用以下命令:
- $ pass -c email/gmail.com
當(dāng)密碼被復(fù)制到剪貼板,剪貼板在45秒后會(huì)被自動(dòng)清空。
在密碼倉(cāng)庫(kù)中生成并存儲(chǔ)新密碼
使用pass命令,你也可以生成一個(gè)新的隨機(jī)密碼,該密碼可用于任何目的。pass工具將會(huì)使用pwgen工具來(lái)生成一個(gè)好的隨機(jī)密碼。你可以指定密碼的長(zhǎng)度,或者生成帶或不帶符號(hào)的密碼。
例如,要生成一個(gè)具有10個(gè)字符不帶符號(hào)的密碼,并將它存儲(chǔ)到 "email/new_service.com"列表中:
- $ pass generate email/new_service.com 10 -n
移除密碼信息
要移除現(xiàn)存的密碼信息是很容易的:
- $ pass rm email/gmail.com
小結(jié)一下,pass是及其靈活,便于攜帶,并且更為重要的是,易于使用。對(duì)于正在尋找能簡(jiǎn)單而行之有效地、安全地、并且不依賴圖形化管理任何私人信息的工具的人,筆者強(qiáng)烈推薦pass。
via: http://xmodulo.com/2014/05/manage-passwords-command-line-linux.html