在我的帮助下,ProxyCommand
我设置了一些 ssh 收藏夹以便于使用:
host some_server
hostname some_server
port 22
user some_user
IdentityFile /home/user/.ssh/id_rsa
ProxyCommand ssh frontserver1 -W %h:%p
host frontserver1
hostname frontserver1.url.tld
port 22
user some_user
IdentityFile /home/user/.ssh/id_rsa
今天frontserver1
有很长的停机时间,但我也可以通过frontserver2
或连接frontserver3
。但是,我将不得不重新设置一切some_server_via_front2
,依此类推。这将导致我想要访问的每个 Intranet 服务器(有很多)都有 n 个条目,其中 n 是前端服务器的数量。
有没有更简单的方法?
我可以设置替代品ProxyCommand
吗?
类似的东西:如果ProxyCommand ssh frontserver1 -W %h:%p
无法到达,那么去ProxyCommand ssh frontserver2 -W %h:%p
,然后frontserver3
,......
鉴于
ssh_config
手册上的内容:您应该能够使用 shell 的逻辑 OR 运算符,因此:
我冒昧地
ConnectTimeout
为每个代理主机添加了一个指令,这样最多需要 15 秒才能最终通过列表中的第三台主机失败,而不是n倍主机数量乘以默认值您主机上的 TCP 超时设置恰好是。