我使用密码登录 Ubuntu 12.04。稍后,当我使用浏览器(Chrome)时,系统会要求我输入密码来解锁钥匙串,以便浏览器可以访问我保存的各个网站的凭据(密码相同)。此外,每当我使用 SSH 使用私钥连接到其他计算机时,系统都会提示我输入相同的密码来解锁私钥。
我怎样才能让它要求我输入密码恰好一次每次登录(假设我的登录密码与我用于所有私钥的密码相同)? 一个重要要求:我的所有私钥都应该有密码。这意味着我必须在登录时输入一个密码,这将解锁某个密钥,进而解密所有其他密钥(也已解锁)的密码。这也意味着如果其他人获得了我的私钥,他们将无法在没有至少一个密码的情况下使用它们。
可能有人会试图将这个问题标记为这个问题,这个问题, 或者这个问题。虽然这些问题很相似,但没有一个明确说明登录时仍需要输入密码,而这正是我在这里所要求的。因此,公认的解决方案只是说“将密码设置为空白”——我不想这样,这很危险!所以我知道有类似的问题,但还没有一个得到正确的答案,因为它们略有不同。
答案1
- 按照以下步骤创建公钥后,
第一步是创建一组用于身份验证的 RSA 密钥。这应该在客户端上完成。要在命令行上创建公钥和私钥 SSH 密钥:
mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa # -t Specifies the type of key to create. The possible values are “dsa”, “ecdsa”, “ecdsa-sk”, “ed25519”, “ed25519-sk”, or “rsa”.
系统将提示您输入密钥的保存位置以及密钥的密码。此密码将在您的私钥存储在硬盘上时保护它,并且每次您需要登录基于密钥的系统时都需要使用该密钥:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/b/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/b/.ssh/id_rsa.
Your public key has been saved in /home/b/.ssh/id_rsa.pub.
- 您必须添加您的私钥(可能不安全)但您仍然可以这样做,
ssh-add ~/.ssh/id_rsa
来源:Ubuntu 维基。
答案2
去系统 / 偏好设置 / 密码和加密密钥查看您的钥匙圈。
登录时要解锁的所有密钥/密码都必须在登录钥匙圈。
如果它们在其他密钥环中,请将其删除,下次要求您输入密码时,弹出窗口中应该有一个选项可以将其存储在登录密钥环。(我认为你不能只是从一个复制到另一个,你需要删除。)
根据您的情况,情况可能会略有不同。如果上述方法无效,请附上弹出窗口的屏幕截图,其中展开了所有高级选项。
答案3
将您的密钥环密码设置为相同的作为您的登录密码,而不是空白。这将实现您在登录时解锁密钥环的目标,并且密钥环本身也会受到密码的保护。事实上,这是新设置的默认行为,因此您可能在某个时候更改了密码,或者专门在密钥环上设置了不同的密码。更改其中一个或另一个,使它们匹配,当您登录时,所有内容都会解锁。
答案4
设置一个空白的密钥环密码,您就不会再受到困扰。