我目前需要对10到20台计算机进行远程访问,其中一些需要通过多个SSH跃点进行访问。但是,我注意到某些SSH连接有点慢。什么是最有效的设置?更具体地说,向同一ssh命令添加更多端口绑定是否会降低性能/ IO成本?
例如,这之间有什么区别:
ssh -f user0@host0 -i "/certs/key.pem" -L 2001:host1:22 -L 2002:host2:22 -L 2003:host3:22 -N
还有这个:
ssh -f user0@host0 -i "/certs/key.pem" -L 2001:host1:22 -N
ssh -f user0@host0 -i "/certs/key.pem" -L 2002:host2:22 -N
ssh -f user0@host0 -i "/certs/key.pem" -L 2003:host3:22 -N
我注意到,在第一种情况下,仅运行一个SSH实例,而在第二种情况下,将运行三个实例。对于通过隧道建立的任何SSH连接,哪种设置将产生最佳性能?或者,是否仅凭网络速度就使性能差异相形见??
一种使用3条隧道的单个连接,第二种使用3条隧道的3个单独的连接。假设没有通过~/.ssh/config
或使用的替代设置,仅使用第一个命令会更高效/etc/ssh/ssh_config
。
例如,如果使用ControlMaster
和ControlPath
,则这两个命令将提供相同级别的性能。
另外,如果您正在编写脚本并且关注可读性,请尝试以下操作:
ssh \
-f \
-i "/certs/key.pem" \
-L 2001:host1:22 \
-L 2002:host2:22 \
-L 2003:host3:22
我认为,如果在您的~/.ssh/config
:中使用此功能,您将更容易达成目标
Host host1
ProxyCommand ssh host0 -W %h:%p
如果这样做,则不需要首先使用隧道,因为您似乎正在尝试转发ssh连接。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句