如何清除ssh-agent条目(在Mac OS X上)?


60

我正在运行Mac OS X,看来在使用身份文件SSH到多台计算机后,我的“ ssh-agent”建立了大量的身份/密钥,然后有时向远程计算机提供过多的身份/密钥,导致它们在连接之前将我踢开:

收到与10.12.10.16的断开连接:2:cwd的身份验证失败太多

很明显发生了什么,此页面对此进行了更详细的讨论:

SSH服务器仅允许您尝试进行一定次数的身份验证。每次失败的密码尝试,提供的每一次失败的pubkey /身份等等,都会占用这些尝试之一。如果您的代理中有很多SSH密钥,则可能会发现SSH服务器可能会在允许您尝试进行密码身份验证之前将您踢出局。在这种情况下,有几种不同的解决方法。

重新启动会清除代理,然后一切正常。我还可以将以下行添加到我的.ssh/config文件中,以强制其使用密码身份验证:

PreferredAuthentications keyboard-interactive,password

无论如何,我在引用的页面上看到了有关从代理中删除密钥的说明,但是我不确定这是否适用于Mac,因为无论如何重启后它们似乎都会被清除。

有没有一种简单的方法可以清除“ ssh-agent”中的所有密钥(重启时会发生相同的事情)?

Answers:


97

你的SSH密钥应该不会得到自动添加到代理的,只是因为你SSH'ed到服务器...

运行ssh-add -l以列出代理的密钥,ssh-add -D以清除所有密钥。


也许与OSX的配置有关?如果输入,ssh-add -l我什么也不会得到。如果输入,ssh -i ~/keyFileLocation.dsa un@remotehost我将得到一个OS X弹出对话框,要求输入密码。我输入它,然后它连接我。如果我断开连接然后键入,ssh-add -l则会显示我刚刚使用的身份。重新启动计算机并键入后,ssh-add -l它再次变为空白。ssh-add -D在不重新启动的情况下清除键非常有用。谢谢!
cwd

四年后,这仍然是一个问题,但是此修复程序仍然有效-谢谢
jnunn 2015年

嘿,您能为此指导我吗?superuser.com/questions/951002/...
NIKS

4
错误(在2017年):请参阅AddKeysToAgent配置选项,该选项专门用于将SSH密钥添加到代理中的明确目的,仅因为您已将SSH密钥添加到服务器。
Radon Rosborough

1

限制检查密钥的另一种方法是在文件中添加IdentitiesOnly yes和。IdentityFile ~/.ssh/<nameofkey>/.ssh/config

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.