私钥未解锁的原因可能是什么?


13

自从我不久前更新到Ubuntu 17.10以来,我的私钥(例如,我用于通过ssh访问服务器的私钥)在登录后不再以编程方式被解锁。

在此处输入图片说明

我的理解是,通常seahorse client应该通过询问您在首次键入密钥时是否存储密钥密码来解决此问题。

我的第一个猜测是,seahorse-daemon由于某种原因,它没有运行,但它是:

user@Zeus:~$ ps aux | grep seahorse
user    19170  0.0  0.1 432636 26564 ?        Ss   00:07   0:00 seahorse-daemon

我的第二个猜测是,由于某种原因,我必须删除»Passwords-> login«下存储在seahorse中的所有相关密码: 在此处输入图片说明

我希望强迫客户再次询问我,然后再次存储它们。但这也无济于事。客户没有弹出来问我...

然后我发现了一个可能与之相关的问题,但并没有帮助我: 解锁Ubuntu上的所有私钥,仅在登录时输入一次密码

由于其他密码的管理按预期工作(例如,鹦鹉螺,Chromium,Nextcloud等的密码),因此我认为问题与ssh-agent...有关

有人可以向我暗示正确的方向,如何解决这个问题?GNOME处理密码的方式有什么变化吗?也许在升级过程中无法安装某些新的高级程序?

更新 当我再次使用以下命令将私钥添加到身份验证代理时:

ssh-add ~/.ssh/id_rsa

并尝试登录,系统将要求我仅解锁一次密钥,然后以编程方式将密钥解锁。但这仅在下一次重新启动之前有效。重新开始后,我必须再次添加密钥...


在使用Ubuntu 17.10时,我也突然开始被要求输入密码以解锁ssh密钥。接受的答案对我没有帮助(仅在重新启动之前有效)。 是一个显然重复的问题。
阿列克谢

您猜到了,海马使用密码(通常是密码)对数据进行加密。无密码登录,例如带有密钥的ssh,指纹读取器,...直到需要时才保留解密,然后要求您。问题开始时,您是否将ssh登录名从密码切换为密钥?
ubfan1

Answers:


7

是的,ssh-agent是答案。要保存密码,您要做的就是:

ssh-add ~/.ssh/id_rsa

然后输入您的密码,然后重新登录。


这仅在下次重新启动之前有帮助。
阿列克谢

@Alexey是的,我可以确认它仅在下一次重新启动之前有效。尚未找到解决方案。
user5950 '18

ssh-agent在登录会话期间运行,并在您出于自身安全原因而终止时终止。如果重新启动后仍然存在,并且您的帐户密码遭到破坏,则攻击者突然可以访问您的RSA身份,因此可以访问每台计算机。这将是一个令人讨厌的安全漏洞。但是,有一些解决方法,但要以降低帐户安全性为代价。见unix.stackexchange.com/questions/90853/...
darksky

6

将SSH密钥代理(GNOME密钥环:SSH代理)添加到启动应用程序可以为我解决问题:

在此处输入图片说明


3

第一选择

启动ssh代理:

ssh-agent

添加ssh-key:

ssh-add ~/.ssh/id_rsa

要使其重新启动后仍然存在,请自动启动ssh-agent,将以下行添加到.bash_profile中:

if [ -z "$SSH_AUTH_SOCK" ] ; then
  eval `ssh-agent -s`
  ssh-add
fi

第二种选择

将此添加到您的.bashrc或.zshrc中:

if [ ! -S ~/.ssh/ssh_auth_sock ]; then
  eval `ssh-agent`
  ln -sf "$SSH_AUTH_SOCK" ~/.ssh/ssh_auth_sock
fi
export SSH_AUTH_SOCK=~/.ssh/ssh_auth_sock
ssh-add -l > /dev/null || ssh-add

每次重新启动后,这仅应在您首次登录时提示输入密码。只要它保持运行状态,它将继续重用相同的ssh-agent。


谢谢,这个解决方法看起来好像可行,但是我在徘徊,到底是什么使它停止工作?它在过去的十年中一直有效...我想在解决问题之前找到原因...
user5950
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.