无法从ssh-agent删除密钥。即使重启也无济于事


18

不久前,我注意到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)

与原始版本:

2048 00:01:02:03:04:05:06:07:08:09:0a:0b:0c:0d:0e:0f jruser 04/18/2011 keyname (RSA)

有什么办法可以合理地解释这种行为吗?我猜确实有两个问题:

  1. 即使在重新引导期间,如何设法保留密钥?我的基本知识ssh表明,密钥始终必须手动添加。

  2. 为什么要ssh-agent -D对我撒谎以消除身份?


还有一个Fedora / Red Hat错误:bugzilla.redhat.com/show_bug.cgi?
id=1205546

Answers:


11

看起来可能是一个错误。我在Ubuntu 10.10中有类似的行为。谷歌搜索发现Debian的错误报告:http : //bugs.debian.org/cgi-bin/bugreport.cgi? bug= 472477

要删除显示的多余键,我只是将它们移出了〜/ .ssh目录。


是! 这对我有用。谢谢!我使用Debian喘息beta 4版本
塔拉什

3
最终屈身调查。罪魁祸首是gnome-keyring-daemon,它a)自动将所有密钥加载到〜/ .ssh中,b)拒绝放弃它们。解决方案是防止gnome-keyring-manager再次启动,这是很奇怪的,因为最终要通过删除程序文件的执行许可来实现。
肖恩

有没有解决这个问题的解决方案,涉及使gnome-keyring-manager陷入困境?即,修复gnome-keyring-manager以便删除告诉它的密钥?
菲尔(Phil)

1
现在是2018年,这仍然很重要。必须将密钥移出〜/ .ssh
卡森·叶

1
哇。从〜/ .ssh中删除密钥,并将其放入@CarsonIp提及的其他目录中,然后在bashrc中使用ssh-agent命令从其他目录中手动加载额外的ssh密钥。PIMA!
Ligemer

3

您的密钥将作为文件存储在隐藏目录中:/home/jruser/.ssh/,这就是它们在重新引导后仍然存在的方式。我的猜测是ssh-add -D正在从内存中删除它们,但是当您重新启动时,它们是从.ssh目录中读取的,因此您又有了它们。


4
但是ssh-add -D不会从内存中删除它们。它根本没有作用。
肖恩
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.