我创建了一个受密码保护的 RSA 密钥,以使用基于密钥的身份验证通过 ssh 访问我的远程服务器,并使用ssh-add
.
我想防止 seahorse 在每次登录时向我询问密码。
有什么办法可以禁用它吗?还是永远进入它?还是让一位用户永远获得受信任的访问权限?
我创建了一个受密码保护的 RSA 密钥,以使用基于密钥的身份验证通过 ssh 访问我的远程服务器,并使用ssh-add
.
我想防止 seahorse 在每次登录时向我询问密码。
有什么办法可以禁用它吗?还是永远进入它?还是让一位用户永远获得受信任的访问权限?
启动 Seahorse,找到您的“登录”加密密钥,然后右键单击“密码:登录”并选择“更改密码”。
输入旧密码,然后点击“确定”按钮,将新密码和确认框留空。系统将提示您“不安全存储”。确认这一点,当您登录您的机器时,您的密钥环将自动解锁。
请注意,这确实是“不安全的”,只有在您加密家庭驱动器时才应使用,否则丢失您的笔记本电脑将等同于打开它可以访问的所有内容 - 这可能包括您的 Gmail 密码(如果您使用 Gmail 检查器)如果您连接到 WIFI,您的 WIFI 密码、IM 密码等。看起来 Chromium 也开始使用它来存储,因为我的密钥环中似乎记录了很多特定于站点的东西。
就个人而言,我也在设置完所有内容后卸载了 Seahorse,这样如果我忘记锁定笔记本电脑,以明文形式查看我的所有密码就不会那么简单了!
小心不安全的存储。
我知道这是一个老问题,但是我在自己尝试这样做时找到了自己的方式,这似乎可以解决问题:
您要确保使用
ssh-askpass
与 Seahorse 关联的,并且它可能不会在每个系统上都位于同一个位置,但在我的情况下(Ubuntu 20.10)它是以下内容:如果此可执行位置在您的系统上不起作用,您可以尝试以下操作:
ssh-askpass
这将列出名称和seahorse
路径中包含的所有文件和目录。(您可能需要在系统上安装和设置mlocate
才能运行此命令。)SSH 密钥最常见的路径是
~/.ssh/id_rsa
,但您可以在 Seahorse GUI 中查看是否是其他路径。就我而言,我使用了以下命令:如果您成功执行该命令,它将弹出一个对话框,列出 SSH 密钥的名称并询问您的密码。在我的情况下,我收到一个 Vala 错误,说它无法抓住键盘,并且我输入的密码被打印到终端,但是当我的 GNOME 密钥环被解锁时,这个命令似乎已经成功地使那个特定的 SSH 密钥自动解锁。
编辑:似乎更重要的是进入 Seahorse GUI,单击 OpenSSH 密钥,右键单击有问题的密钥,选择“为安全外壳配置密钥...”,然后添加每个服务器和用户名与钥匙一起使用。我今天早些时候(在跑步之前
ssh-askpass
)做过这个,但完全忘记了。奇怪的是,这部分过程似乎没有提示输入密码。任何可以阻止 Seahorse 询问密码的解决方案都需要将密码写入硬盘(或其他东西)。这意味着任何窃取您计算机的人都可以登录(因为密码也保存在某处)。这与一开始没有密码短语几乎相同。
简而言之,只需删除密码。密码短语的重点是,如果有人访问您的机器并窃取了密钥,您有一些时间(在他们暴力破解密码之前)使您使用它的任何机器上的密钥无效。删除密码不会降低密钥本身的安全性。
这是在 Ubuntu 18.04 LTS 上对我非常有效的简单解决方案:
在自动启动小程序(“启动应用程序”又名 gnome-session-properties)中禁用“SSH 密钥代理”:
背景信息:这个问题是由于密钥管理器gnome-keyring-daemon造成的,其中 seahorse 只是图形用户界面。当用户登录时,守护程序会加载 ssh 密钥代理。因此,通过禁用 SSH 密钥代理小程序,守护程序会停止管理存储在 .ssh 中的 SSH 密钥
~/.ssh/
。更多细节可以在gnome-keyring-daemon wiki 的 SSH 部分找到