解讀Ubuntu里的密鑰環(huán)概念
如果你用過 Ubuntu 或者其他的 Linux 發(fā)行版里的自動登錄功能, 你可能遇到過這種彈出消息:
請輸入密碼以解鎖你的登錄密鑰環(huán)
登錄密鑰環(huán)在你登錄系統(tǒng)時(shí)未解鎖。
Enter Password To Unlock Your Login Keyring Ubuntu
如果你一直點(diǎn)擊取消,它會不斷彈出幾次才會消失。你可能想知道,為什么你會一直看到這個(gè)密鑰環(huán)信息呢?
讓我來告訴你吧。它其實(shí)不是錯(cuò)誤,而是一個(gè)安全特性。
奇怪嗎?下面就讓我來解釋下 Linux 里的密鑰環(huán)概念。
Linux 里的密鑰環(huán)是什么。為什么需要它?
在現(xiàn)實(shí)生活中你為什么要用鑰匙環(huán)(也叫鑰匙鏈)?你用它把一把或多把鑰匙串到一起, 以便于攜帶和查找。
Linux 里也是類似的。密鑰環(huán)特性使你的系統(tǒng)可以將各種密碼放在一起,并將其保存在一個(gè)地方。
大多數(shù) Linux 桌面環(huán)境,如 GNOME、KDE、Xfce 等采用 GNOME 密鑰環(huán)來提供這個(gè)功能。
該密鑰環(huán)保存了 ssh 密鑰、GPG 密鑰以及使用此功能的應(yīng)用程序(例如 Chromium 瀏覽器)的密鑰。默認(rèn)情況下,“密鑰環(huán)”通過主密碼來保護(hù),該密碼通常是帳戶的登錄密碼。
系統(tǒng)上的每個(gè)用戶都有自己的密鑰環(huán),(通常)密碼與用戶帳戶本身的密碼相同。當(dāng)你使用密碼登錄系統(tǒng)時(shí),你的密匙環(huán)將使用你帳戶的密碼自動解鎖。
當(dāng)你啟用 Ubuntu 中的自動登錄功能時(shí)時(shí),就有問題了。這意味著你無需輸入密碼即可登錄系統(tǒng)。在這種情況下,你的密鑰環(huán)不會自動解鎖。
密鑰環(huán)是一個(gè)安全特性
記得我說過密鑰環(huán)是一個(gè)安全特性嗎?現(xiàn)在想象一下你在 Linux 電腦上開啟了自動登錄功能。有權(quán)訪問你電腦的任何人無需密碼就能進(jìn)入你的系統(tǒng)。但是你可能不會在意,因?yàn)槟阒皇怯盟鼇碓L問互聯(lián)網(wǎng)。
但是,如果你在 Ubuntu 中使用 Chromium 或 Google Chrome 之類的瀏覽器,并使用它來保存各種網(wǎng)站的登錄密碼,那么你將遇到麻煩。任何人都可以使用瀏覽器并利用你在瀏覽器中保存的密碼登錄網(wǎng)站。這不很危險(xiǎn)嗎?
這就是為什么當(dāng)你使用 Chrome 時(shí),它將反復(fù)地提示你先解鎖密鑰環(huán)。這確保了只有知道密鑰環(huán)密碼(即賬戶密碼)的人才能使用在瀏覽器中保存的密碼來登錄它們相關(guān)的網(wǎng)站。
如果你反復(fù)取消解鎖密鑰環(huán)的提示,它最終將消失,并允許你使用瀏覽器。但是,保存的密碼將不會被解鎖,你在 Chromium/Chome 瀏覽器上將會看到“同步暫停”的提示。
Sync paused in Google Chrome
如果密鑰環(huán)一直存在,為什么你從來沒有見過它呢?
如果你在你的 Linux 系統(tǒng)上從沒見過它的話,這個(gè)問題就很有道理。
如果你從沒有用過自動登錄功能(或者修改你的賬戶密碼),你可能都沒有意識到這個(gè)特性的存在。
這是因?yàn)楫?dāng)你通過你的密碼登錄系統(tǒng)時(shí),你的密鑰環(huán)被你的賬戶密碼自動解鎖了。
Ubuntu(和其他發(fā)行版)在執(zhí)行普通的管理任務(wù)如修改用戶、安裝新軟件等需要輸入密碼,無論你是否是自動登錄的。但是對于日常任務(wù)像使用瀏覽器,它不需要輸入密碼因?yàn)槊荑€環(huán)已經(jīng)被解鎖了。
當(dāng)你切換到自動登錄時(shí),你不再需要輸入登錄密碼。這意味著密鑰環(huán)沒有被自動解鎖,因此當(dāng)你使用利用了密鑰環(huán)特性的瀏覽器時(shí),它將提示你來解鎖密鑰環(huán)。
你可以輕松地管理密鑰環(huán)和密碼
這個(gè)密鑰環(huán)放在哪里?它的核心是一個(gè)守護(hù)任務(wù)(一個(gè)后臺自動運(yùn)行的程序)。
別擔(dān)心。你不必通過終端來操作守護(hù)任務(wù)。大多數(shù)桌面環(huán)境都自帶一個(gè)可以和這個(gè)守護(hù)進(jìn)程進(jìn)行交互的圖形化應(yīng)用程序。KDE 上有 KDE 錢包,GNOME 和其他桌面上叫做“密碼和密鑰”(之前叫 Seahorse)。
Password And Keys App in Ubuntu
你可以用這個(gè) GUI 程序來查看哪些應(yīng)用程序在用密鑰環(huán)來管理/保護(hù)密碼。
你可以看到,我的系統(tǒng)有自動創(chuàng)建的登錄密鑰環(huán)。也有一個(gè)存儲 GPG 和 SSH 密鑰的密鑰環(huán)。那個(gè)證書用來保存證書機(jī)構(gòu)頒發(fā)的證書(如 HTTPS 證書)。
Password and Keys application in Ubuntu
你也可以使用這個(gè)應(yīng)用程序來手動保存網(wǎng)站的密碼。例如,我創(chuàng)建了一個(gè)新的叫做“Test”的被密碼保護(hù)的密鑰環(huán),并手動存儲了一個(gè)密碼。
這比在一個(gè)文本文件中保存一批密碼要好一些。至少在這種情況下,你的密碼只有在你通過密碼解鎖了密鑰環(huán)時(shí)才允許被看到。
Saving New Password Seahorse
這里有一個(gè)潛在的問題,如果你格式化你的系統(tǒng),手動保存的密碼必然會丟失。通常,你會備份你的個(gè)人文件,但并不是所有的用戶特定數(shù)據(jù),如密鑰環(huán)文件。
有一種辦法能解決它。密鑰環(huán)數(shù)據(jù)通常保存在 ~/.local/share/keyrings
目錄。在這里你可以看到所有的密鑰環(huán),但是你不能直接看到它們的內(nèi)容。如果你移除密鑰環(huán)的密碼(我會在這篇文章的后面描述操作步驟),你可以像一個(gè)普通的文本文件一樣讀取密鑰環(huán)的內(nèi)容。你可以將這個(gè)解鎖后的密鑰環(huán)文件完整地復(fù)制下來,并在其他的 Linux 機(jī)器上運(yùn)行“密碼和密鑰”應(yīng)用程序?qū)氲狡渲小?/p>
總結(jié)一下目前為止所學(xué)的內(nèi)容:
- 大多數(shù) Linux 系統(tǒng)缺省已經(jīng)安裝并激活了密鑰環(huán)特性
- 系統(tǒng)上的每個(gè)用戶都擁有他自己的密鑰環(huán)
- 密鑰環(huán)通常是用賬戶密碼鎖定的(保護(hù))
- 當(dāng)你通過密碼登錄時(shí)密鑰環(huán)會被自動解鎖
- 對于自動登錄,密鑰環(huán)不會自動解鎖,因此當(dāng)你試圖使用依賴密鑰環(huán)的應(yīng)用程序時(shí)會被提示先解鎖它
- 并不是所有的瀏覽器或應(yīng)用程序利用了密鑰環(huán)特性
- (Linux 上)安裝一個(gè) GUI 程序可以和密鑰環(huán)交互
- 你可以用密鑰環(huán)來手動存儲加密格式的密碼
- 你可以自己修改密鑰環(huán)密碼
- 你可以通過導(dǎo)出(需要先解鎖密鑰環(huán))并導(dǎo)入到其他計(jì)算機(jī)上的方式來獲取手工保存的密碼。
修改密鑰環(huán)密碼
假設(shè)你修改了你的賬戶密碼。當(dāng)你登錄時(shí),你的系統(tǒng)試圖通過新的登錄密碼來自動解鎖密鑰環(huán)。但是密鑰環(huán)還在使用老的登錄密碼。
這種情況下,你可以修改密鑰環(huán)密碼為新的登錄密碼,這樣密碼環(huán)才能在你登錄系統(tǒng)時(shí)自動解鎖。
從菜單中打開“密碼和密鑰”應(yīng)用程序:
Look for Password and Keys app in the menu
在“Login”密鑰環(huán)上右擊并點(diǎn)擊“修改密碼”:
Change Keyring Password
如果你不記得老的登錄密碼怎么辦?
你可能知道在 Ubuntu 上重置忘記的密碼很容易。但是密鑰環(huán)在這種場景下還是有問題。你修改了賬戶密碼,但是你不記得仍然被密鑰環(huán)使用的老的賬戶密碼。
你不能修改它因?yàn)槟悴恢览系拿艽a。怎么辦?
這種情況下,你將不得不移除整個(gè)密鑰環(huán)。你可以通過“密碼和密鑰”應(yīng)用程序來操作:
Delete Keyring Ubuntu
它會提示你進(jìn)行確認(rèn):
Delete Keyring
另外,你也可以手動刪除 ~/.local/share/keyrings
目錄下的密鑰環(huán)文件。
老的密鑰環(huán)文件被移除后,你再打開 Chrome/Chromium 時(shí),它會提示你創(chuàng)建一個(gè)新的密鑰環(huán)。
New Keyring Password
你可以用新的登錄密碼,密鑰環(huán)就會被自動解鎖了。
禁用密鑰環(huán)密碼
在你想用自動登錄但又不想手動解鎖密鑰環(huán)時(shí),你可以把禁用密鑰環(huán)密碼作為一個(gè)規(guī)避方法。記住你正在禁用一個(gè)安全特性,因此請三思。
操作步驟和修改密鑰環(huán)相似。打開“密碼和密鑰”應(yīng)用程序,然后修改密鑰環(huán)密碼。
技巧在于當(dāng)它提示修改密碼時(shí),不要輸入新密碼,而是點(diǎn)擊“繼續(xù)”按鈕。這將移除密鑰環(huán)的密碼。
Disable Keyring password by not setting any password at all
這種方法,密鑰環(huán)沒有密碼保護(hù),并將一直處于解鎖狀態(tài)。