启动时添加 SSH 密钥而不提示密码 - 如何以及为什么?

启动时添加 SSH 密钥而不提示密码 - 如何以及为什么?

我有一个受密码保护的 SSH 密钥存储在~/.ssh/id_rsa.在我的.zshrc我有这个片段:

if ! ssh-add -l > /dev/null; then
  ssh-add
fi

启动后,我通常打开终端,看到密码提示,然后解锁我的 KeePass 2 DB,将密码复制到剪贴板并将其粘贴到终端中以将密钥添加到代理。

几天前,我重新启动了系统,登录并打开了终端。令我惊讶的是,密码提示并没有出现。令我惊讶的是,我输入ssh-add -l后发现我的密钥已添加。这很奇怪,但我挥手示意它走开,以为我忘记了我已经输入了密码。

刚才跑了一下sudo systemctl kexec,登录后,key已经又添加了。我的 KeePass 数据库被锁定。密码较长且随机 ( /[a-zA-Z0-9]{20}/)。这次我怀疑这是特定于 的东西kexec,但又过了一次sudo systemctl kexec,出现了密码提示,密钥没有添加到代理中。

  • 为什么我的 SSH 密钥有时会在重新启动后添加到代理中?
  • 冷启动后也会出现这种情况吗?(是的)
  • 我可以做什么来预防它?

我使用的是 Pop!_OS 18.04,使用 UEFI 从 GPT 磁盘启动,并使用 LUKS 加密/和未加密/boot,的 LVM(如果有的话)。


编辑:4 天后我刚刚冷启动,密钥已经再次添加到代理中。

答案1

重新安装 Seahorse 发现密钥密码已记住在系统密钥环中。我不知道添加密钥的原因是什么,但我能够使用 Seahorse 删除记住的密码。

相关内容