解讀 Ubuntu 里的密鑰環概念
如果你用過 Ubuntu 或者其他的 Linux 發行版里的自動登錄功能, 你可能遇到過這種彈出消息:
登錄密鑰環在你登錄系統時未解鎖。
如果你一直點擊取消,它會不斷彈出幾次才會消失。你可能想知道,為什麼你會一直看到這個密鑰環信息呢?
讓我來告訴你吧。它其實不是錯誤,而是一個安全特性。
奇怪嗎?下面就讓我來解釋下 Linux 里的密鑰環概念。
Linux 里的密鑰環是什麼。為什麼需要它?
在現實生活中你為什麼要用鑰匙環(也叫鑰匙鏈)?你用它把一把或多把鑰匙串到一起, 以便於攜帶和查找。
Linux 里也是類似的。密鑰環特性使你的系統可以將各種密碼放在一起,並將其保存在一個地方。
大多數 Linux 桌面環境,如 GNOME、KDE、Xfce 等採用 GNOME 密鑰環來提供這個功能。
該密鑰環保存了 ssh 密鑰、GPG 密鑰以及使用此功能的應用程序(例如 Chromium 瀏覽器)的密鑰。默認情況下,「密鑰環」通過主密碼來保護,該密碼通常是帳戶的登錄密碼。
系統上的每個用戶都有自己的密鑰環,(通常)密碼與用戶帳戶本身的密碼相同。當你使用密碼登錄系統時,你的密匙環將使用你帳戶的密碼自動解鎖。
當你啟用 Ubuntu 中的自動登錄功能時時,就有問題了。這意味著你無需輸入密碼即可登錄系統。在這種情況下,你的密鑰環不會自動解鎖。
密鑰環是一個安全特性
記得我說過密鑰環是一個安全特性嗎?現在想像一下你在 Linux 電腦上開啟了自動登錄功能。有權訪問你電腦的任何人無需密碼就能進入你的系統。但是你可能不會在意,因為你只是用它來訪問互聯網。
但是,如果你在 Ubuntu 中使用 Chromium 或 Google Chrome 之類的瀏覽器,並使用它來保存各種網站的登錄密碼,那麼你將遇到麻煩。任何人都可以使用瀏覽器並利用你在瀏覽器中保存的密碼登錄網站。這不很危險嗎?
這就是為什麼當你使用 Chrome 時,它將反覆地提示你先解鎖密鑰環。這確保了只有知道密鑰環密碼(即賬戶密碼)的人才能使用在瀏覽器中保存的密碼來登錄它們相關的網站。
如果你反覆取消解鎖密鑰環的提示,它最終將消失,並允許你使用瀏覽器。但是,保存的密碼將不會被解鎖,你在 Chromium/Chome 瀏覽器上將會看到「同步暫停」的提示。
如果密鑰環一直存在,為什麼你從來沒有見過它呢?
如果你在你的 Linux 系統上從沒見過它的話,這個問題就很有道理。
如果你從沒有用過自動登錄功能(或者修改你的賬戶密碼),你可能都沒有意識到這個特性的存在。
這是因為當你通過你的密碼登錄系統時,你的密鑰環被你的賬戶密碼自動解鎖了。
Ubuntu(和其他發行版)在執行普通的管理任務如修改用戶、安裝新軟體等需要輸入密碼,無論你是否是自動登錄的。但是對於日常任務像使用瀏覽器,它不需要輸入密碼因為密鑰環已經被解鎖了。
當你切換到自動登錄時,你不再需要輸入登錄密碼。這意味著密鑰環沒有被自動解鎖,因此當你使用利用了密鑰環特性的瀏覽器時,它將提示你來解鎖密鑰環。
你可以輕鬆地管理密鑰環和密碼
這個密鑰環放在哪裡?它的核心是一個守護任務(一個後台自動運行的程序)。
別擔心。你不必通過終端來操作守護任務。大多數桌面環境都自帶一個可以和這個守護進程進行交互的圖形化應用程序。KDE 上有 KDE 錢包,GNOME 和其他桌面上叫做「密碼和密鑰」(之前叫 Seahorse)。
你可以用這個 GUI 程序來查看哪些應用程序在用密鑰環來管理/保護密碼。
你可以看到,我的系統有自動創建的登錄密鑰環。也有一個存儲 GPG 和 SSH 密鑰的密鑰環。那個證書用來保存證書機構頒發的證書(如 HTTPS 證書)。
你也可以使用這個應用程序來手動保存網站的密碼。例如,我創建了一個新的叫做「Test」的被密碼保護的密鑰環,並手動存儲了一個密碼。
這比在一個文本文件中保存一批密碼要好一些。至少在這種情況下,你的密碼只有在你通過密碼解鎖了密鑰環時才允許被看到。
這裡有一個潛在的問題,如果你格式化你的系統,手動保存的密碼必然會丟失。通常,你會備份你的個人文件,但並不是所有的用戶特定數據,如密鑰環文件。
有一種辦法能解決它。密鑰環數據通常保存在 ~/.local/share/keyrings
目錄。在這裡你可以看到所有的密鑰環,但是你不能直接看到它們的內容。如果你移除密鑰環的密碼(我會在這篇文章的後面描述操作步驟),你可以像一個普通的文本文件一樣讀取密鑰環的內容。你可以將這個解鎖後的密鑰環文件完整地複製下來,並在其他的 Linux 機器上運行「密碼和密鑰」應用程序導入到其中。
總結一下目前為止所學的內容:
- 大多數 Linux 系統預設已經安裝並激活了密鑰環特性
- 系統上的每個用戶都擁有他自己的密鑰環
- 密鑰環通常是用賬戶密碼鎖定的(保護)
- 當你通過密碼登錄時密鑰環會被自動解鎖
- 對於自動登錄,密鑰環不會自動解鎖,因此當你試圖使用依賴密鑰環的應用程序時會被提示先解鎖它
- 並不是所有的瀏覽器或應用程序利用了密鑰環特性
- (Linux 上)安裝一個 GUI 程序可以和密鑰環交互
- 你可以用密鑰環來手動存儲加密格式的密碼
- 你可以自己修改密鑰環密碼
- 你可以通過導出(需要先解鎖密鑰環)並導入到其他計算機上的方式來獲取手工保存的密碼。
修改密鑰環密碼
假設你修改了你的賬戶密碼。當你登錄時,你的系統試圖通過新的登錄密碼來自動解鎖密鑰環。但是密鑰環還在使用老的登錄密碼。
這種情況下,你可以修改密鑰環密碼為新的登錄密碼,這樣密碼環才能在你登錄系統時自動解鎖。
從菜單中打開「密碼和密鑰」應用程序:
在「Login」密鑰環上右擊並點擊「修改密碼」:
如果你不記得老的登錄密碼怎麼辦?
你可能知道在 Ubuntu 上重置忘記的密碼很容易。但是密鑰環在這種場景下還是有問題。你修改了賬戶密碼,但是你不記得仍然被密鑰環使用的老的賬戶密碼。
你不能修改它因為你不知道老的密碼。怎麼辦?
這種情況下,你將不得不移除整個密鑰環。你可以通過「密碼和密鑰」應用程序來操作:
它會提示你進行確認:
另外,你也可以手動刪除 ~/.local/share/keyrings
目錄下的密鑰環文件。
老的密鑰環文件被移除後,你再打開 Chrome/Chromium 時,它會提示你創建一個新的密鑰環。
你可以用新的登錄密碼,密鑰環就會被自動解鎖了。
禁用密鑰環密碼
在你想用自動登錄但又不想手動解鎖密鑰環時,你可以把禁用密鑰環密碼作為一個規避方法。記住你正在禁用一個安全特性,因此請三思。
操作步驟和修改密鑰環相似。打開「密碼和密鑰」應用程序,然後修改密鑰環密碼。
技巧在於當它提示修改密碼時,不要輸入新密碼,而是點擊「繼續」按鈕。這將移除密鑰環的密碼。
這種方法,密鑰環沒有密碼保護,並將一直處於解鎖狀態。
via: https://itsfoss.com/ubuntu-keyring/
作者:Abhishek Prakash 選題:lujun9972 譯者:messon007 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive