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

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

自从我前段时间更新到 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

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

我希望强制客户端再次询问我,然后再次存储它们。但这也没有用。客户端没有弹出来询问我...

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

ssh-agent由于其他密码的管理工作正常(例如 nautilus、Chromium、Nextcloud 等的密码),我认为问题与...有关。

有人能指点我如何解决这个问题吗?GNOME 处理密码的方式有什么变化吗?也许在升级过程中安装了一些新奇的程序失败了?

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

ssh-add ~/.ssh/id_rsa

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

答案1

是的,ssh-agent 就是答案。要保存密码,您只需执行以下操作:

ssh-add ~/.ssh/id_rsa

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

答案2

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

在此处输入图片描述

答案3

第一个选项

启动 ssh 代理:

ssh-agent

添加 ssh 密钥:

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。

相关内容