通过跳转主机进行 pssh 和 ssh-agent 密钥转发

通过跳转主机进行 pssh 和 ssh-agent 密钥转发

我正在尝试使用 pssh 结合跳转主机和 ssh-agent 密钥转发来连接到多个主机。

不幸的是,这通常会失败,但不同的主机会失败。所以这只是一个下次看起来会有所不同的示例:

 ~> pssh -h /tmp/hostfile -o /tmp/log  -e /tmp/error/ -v uname -a
[1] 13:51:18 [FAILURE]  host1 Exited with error code 255
[2] 13:51:19 [SUCCESS]  host2 
[3] 13:51:19 [SUCCESS]  host3 
[4] 13:51:19 [SUCCESS]  host4
[5] 13:51:19 [SUCCESS]  host5
[6] 13:51:19 [SUCCESS]  host6
[7] 13:51:19 [SUCCESS]  host7
….
[16] 13:51:19 [SUCCESS] host16

当我更深入地观察时,我

ssh_exchange_identification: Connection closed by remote host
ssh_exchange_identification: Connection closed by remote host

在发生故障的主机上。这看起来就像通过跳转主机进行的 ssh-agent 密钥转发在此特定场景中不起作用。

在我的 ~.ssh/config 中它看起来像这样:

ForwardAgent yes

Host *.tld.foo
    User frlan
    ProxyCommand ssh tld-jump-host nc %h %p

Host tld-jump-host
    HostName myhost.example.com
    User frlan
    ProxyCommand none

通常这是有效的。现在我想知道为什么从大约 15 个主机开始,有时密钥不会被转发,我如何升级我的配置来防止这种情况发生。

答案1

我正在尝试使用 pssh 结合跳转主机和 ssh-agent 密钥转发来连接到多个主机。

对于使用的连接,ProxyCommand您不需要任何ssh-agent转发。所有身份验证都直接从您的计算机完成。

ssh_config说的手册页

对于每个参数,将使用第一个获得的值。

因此,Host tld-jump-host阻止应该在Host *.tld.foo阻止之前,特别是当跳转框与其后面的主机具有相同的 tld 时。

如果您要连接到此跳转盒后面的许多主机,则可能会触发连接限制,并且连接将被随机拒绝。您可以尝试通过增加跳转盒服务器中的连接速率限制(MaxStartups中的选项)来避免这种情况,或者通过创建目录并将以下内容添加到中的 jumbox 块来sshd_config多路复用到跳转盒的连接:~/.ssh/cm/ssh_config

ControlMaster auto
ControlPath ~/.ssh/cm/%C
ControlPersist 5m

相关内容