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

cwd*_*cwd 76 linux ssh unix ssh-agent macos

我正在运行 Mac OS X,似乎在通过 SSH 连接到多台机器后,使用身份文件,我的“ssh-agent”建立了很多身份/密钥,然后有时向远程机器提供太多,导致他们在连接之前踢我:

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

很明显发生了什么,这个页面更详细地讨论了它:

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

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

PreferredAuthentications keyboard-interactive,password
Run Code Online (Sandbox Code Playgroud)

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

是否有一种简单的方法可以清除“ssh-agent”中的所有密钥(与重新启动时发生的情况相同)?

use*_*686 125

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

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

  • 错误(在 2017 年):请参阅“AddKeysToAgent”配置选项,该选项旨在将您的 SSH 密钥添加到代理中,因为您只是通过 SSH 连接到服务器。 (7认同)

Leo*_*her 7

限制检查键的另一种方法是添加IdentitiesOnly yes/.ssh/config条目列表

IdentityFile ~/.ssh/<nameofkey>

您还可以将它们添加到每个主机条目中:

Host server-name HostName <ipaddress> User <username> IdentityFile ~/.ssh/<nameofkey>

SSH 手册页还有更多选项。