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