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