在 CentOS6 中向 ssh-agent 添加了太多密钥 - 我该如何阻止?

And*_*iel 3 ssh-agent

我试图调试 ssh 问题Too many authentication failures,并发现ssh -vvssh 在回退以尝试密码之前提供了大量密钥。

在调查中,我发现这些按键与莫名其妙地增加ssh-agent运行startx时X11开始。

我的目录中有很多~/.ssh用于不同机器的密钥,这些年来通过许多系统更新传输。我什至没有意识到ssh-agent正在运行。

我认为ssh-add,根据联机帮助页,默认情况下只会添加id_dsa,id_rsaidentity。但不知何故,它也在添加BillBrewer.pub, JanStewer.pub, PeterGurney.pub, PeterDavy.pub, DanlWhiddon, HarryHawke.pub,OldUncleTomCobley.pub并在我希望提供密码时在每个登录会话中显示全部内容。因此服务器上的 sshd 决定足够了并断开连接。

我怎样才能控制这种行为?除了从我的 .ssh 目录中删除我额外的公钥并只保留我需要的私有密钥之外,这在过去一直是保存它们的一个方便的地方。

就此而言,如果我想如何停止 ssh-agent 运行?

这是一个安全问题(将密钥发送到不应该获得它们的服务器)吗?

我意识到我可以在每个会话的基础上覆盖它,-o PreferredAuthentications=password但我更喜欢系统性修复。

  • 更奇怪的是:我尝试使用ssh-add -D删除所有身份,或者ssh-add -d *.pub,但是当我使用时ssh-add -l,它们仍然存在。

CentOS 6.5 版,OpenSSH_5.3p1,openssh-clients-5.3p1

phe*_*mer 5

首先,密钥应该识别客户端,而不是远程服务器。因此,您应该只有很少数量的键(例如 1)。

官方ssh-agent实用程序本身在查找您的密钥 (~/.ssh/id_rsa ~/.ssh/id_dsa ~/.ssh/id_ecdsa~/.ssh/identity)时只会查找一些预定义的名称。
但是,除了ssh-agent. 您可能有一个正在运行的密钥环守护程序(例如gnome-keyring-daemon)。默认情况下,密钥环守护程序可能由您的桌面环境启动。在您的桌面环境会话设置中查看以将其关闭。

您也可以放入IdentitiesOnly=yes您的~/.ssh/config文件,但我不会认为这是“正确”的答案。

关于向服务器发送额外的密钥。不,这不是任何类型的安全风险。