不久前,我注意到我的 ssh-agent 中有三个我无法删除的键。 ssh-add -l
显示三个键;我跑了ssh-add -D
,然后被告知“所有身份都已删除。”;但随后立即ssh-add -l
显示了相同的三个键。
如果我注销然后重新登录,密钥仍然存在。如果我重新启动机器,密钥仍然存在。如果我删除 中的密钥环目录/tmp
,我将无法再连接ssh-agent
,但是在注销并重新登录后,密钥又回来了。他们是无懈可击的。
据我所知,钥匙是我的,不是别人的。我可以通过他们访问我通常的本地服务。但是,当我再次添加其中一个密钥时ssh-add
,给出私钥文件的路径,新密钥在以下输出中具有不同的外观ssh-add -l
:
2048 00:01:02:03:04:05:06:07:08:09:0a:0b:0c:0d:0e:0f /home/jruser/.ssh/jruser-keyname-20110418 (RSA)
Run Code Online (Sandbox Code Playgroud)
对比原版:
2048 00:01:02:03:04:05:06:07:08:09:0a:0b:0c:0d:0e:0f jruser 04/18/2011 keyname (RSA)
Run Code Online (Sandbox Code Playgroud)
有没有办法合理地解释这种行为?我想真的有两个问题:
即使在重新启动后,如何设法保留密钥?我的基本知识ssh
表明密钥总是必须手动添加。
为什么ssh-agent -D
要在删除身份时对我撒谎?
小智 11
看起来它可能是一个错误。我在 Ubuntu 10.10 中有类似的行为。谷歌搜索发现 Debian 的错误报告:http : //bugs.debian.org/cgi-bin/bugreport.cgi? bug= 472477
为了删除我显示的额外密钥,我只是将它们移出了 ~/.ssh 目录。