我的客户端是 mac os x 10.9.5。我有一个堡垒主机 (linux),我正在通过 ssh 连接它。我的代理转发功能正在运行,因此我可以 ssh 到堡垒主机,然后 ssh 到另一台机器,而不必将我的私钥存储在堡垒上。
我的问题是,我在客户端计算机上的 ssh 存储 (ssh-add -L) 中输入了 7 个密钥。当我尝试对具有第 7 个密钥的计算机使用代理转发时,它会因“身份验证失败次数过多”而失败。启用 -vvv 后,我可以看到在 send_pubkey_test 中,它到达提供的第 6 个密钥,然后停止。第 7 个密钥从未被提供。以下是第 6 个密钥和失败的片段。
- 调试3:send_pubkey_测试
- debug2:我们发送了一个公钥包,等待回复
- debug1:可以继续的认证:publickey
- debug1:提供RSA公钥:xxxx.pem
- 调试3:send_pubkey_测试
- debug2:我们发送了一个公钥包,等待回复
- 收到来自 10.0.1.240 的断开连接:2:ec2-user 的身份验证失败次数过多
我尝试过各种解决方案但一定是忽略了一些东西。
在客户端上,我使用配置文件。其中堡垒主机设置如下:
host jump01
ForwardAgent yes
Hostname www.example.com
User some-user
IdentityFile bastion.pem
IdentitiesOnly yes
我尝试在配置文件中设置客户端中的其他服务器。以下是示例。在堡垒服务器上,我尝试 ssh internal.IP,但失败,提示“身份验证过多:”
host internal.IP
IdentityFile key.pem
IdentitiesOnly yes
我尝试在堡垒服务器上设置配置以强制其使用身份文件。但由于我不想将我的私钥暴露在那里,所以失败了。
此外,我尝试获取 pem 的公钥并将其复制到堡垒服务器的 .ssh 目录中。然后在命令行上使用 -i name.pub。这不起作用。它似乎将公钥视为 pem。
我的解决方法是编写一个脚本来根据需要加载/删除密钥。我一直在想,对于 ssh 代理转发,一定有一个我遗漏的解决方案。
感谢任何指导。
答案1
我宁愿这是对这个问题的评论,但我没有代表......
为什么有 7 个密钥?我见过有人这样做,认为这样更安全,但事实并非如此。如果您的客户端受到威胁,所有密钥都会受到威胁。也许您有正当理由,但只是想确保您不会制造比解决的问题更多的问题。