若是你用过 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