CentOS6 中的 ssh-agent 中添加了太多密钥 - 我怎样才能阻止这种情况?

CentOS6 中的 ssh-agent 中添加了太多密钥 - 我怎样才能阻止这种情况?

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

经过调查,我发现这些键是ssh-agentstartxX11 启动时以某种方式添加的。

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

我认为ssh-add,根据手册页,默认情况下只会添加id_dsa,id_rsaidentity。但不知何故,它还添加了BillBrewer.pubJanStewer.pubPeterGurney.pubPeterDavy.pubDanlWhiddonHarryHawke.pubOldUncleTomCobley.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

答案1

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

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

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

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

相关内容