可能是什么原因,私钥没有解锁?

由于我一直在更新到Ubuntu 17.10,我的私钥 – 我用它来通过ssh访问我的服务器 – 在登录后不再以编程方式解锁。

在此处输入图像描述

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

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

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

我的第二个猜测是,由于某种原因,我必须删除存储在海马中的所有相关密码,在»密码 – >登录«下: 在此处输入图像描述

我希望强迫客户再次问我然后再存储它们。 但这并没有帮助。 客户端没有弹出问我…

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

由于其他密码的管理按预期工作(例如nautilus,Chromium,Nextcloud等的密码),我认为问题必须与ssh-agent

任何人都可以向我提示正确的方向,如何解决这个问题? GNOME处理密码的方式有什么变化吗? 也许在升级过程中安装了一些新的花哨程序?

更新当我再次将私钥添加到身份validation代理时:

 ssh-add ~/.ssh/id_rsa 

并尝试登录,我将被要求只解锁一次密钥,之后密钥以编程方式解锁。 但这只适用于下次重启。 重新开始后,我必须再次添加密钥……

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

 ssh-add ~/.ssh/id_rsa 

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

第一选择

启动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。

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

在此处输入图像描述