当我 ssh 到服务器时,我可以使用一些选项来指定使用哪个密钥,例如:
ssh -o identityfile=~/.ssh/cool -o identitiesonly=yes serverA
这可以防止尝试过多,最终可能会拒绝对服务器的一次访问。但如果我 ssh 到一台设置了转发代理的服务器。然后尝试从那里 ssh 到另一台服务器,它必须使用 ssh-agent,它会尝试它拥有的所有密钥,直到找到正确的密钥或因尝试太多密钥而被拒绝。我可以让 ssh-agent 使用 ssh-agent 中的特定密钥吗?
答案1
有一个解决方案: https://superuser.com/a/273094/1760623
您可以使用密钥的公钥部分来指定要使用转发代理的私钥。
答案2
在 OpenSSH 中这是不可能的。您不应该在代理中存储太多密钥(为什么有人需要超过 1 个密钥?唯一合理的原因是当其他人给您密钥并且您无法更改它时),尤其是在您希望转发到远程的代理中主机。
代理按照添加顺序提供密钥,因此您可以通过首先添加转发的密钥来解决此问题,但这是您唯一可以做的事情。