使用GNU parallel时,如何限制新传出ssh连接的速率?
Background:OpenSSH中使用GNU parallel时,如何限制新传出ssh连接的速率?,ssh,limit,gnu-parallel,Ssh,Limit,Gnu Parallel,Background:OpenSSH中MaxStartups的默认设置是10:30:60,大多数Linux发行版都保留此默认设置。这意味着在sshd开始删除30%的新传入连接之前,一次只能有10个ssh连接在交换密钥和进行身份验证,而在60个未经身份验证的连接中,所有新连接都将被删除。一旦建立了连接,它就不计入此限制。见例 问题:我正在使用GNU parallel在大量后端节点上运行一些繁重的数据处理。我需要通过一台前端机器访问这些节点,并且我正在使用ssh:sProxyCommand设置一个隧
MaxStartups
的默认设置是10:30:60,大多数Linux发行版都保留此默认设置。这意味着在sshd开始删除30%的新传入连接之前,一次只能有10个ssh连接在交换密钥和进行身份验证,而在60个未经身份验证的连接中,所有新连接都将被删除。一旦建立了连接,它就不计入此限制。见例
问题:我正在使用GNU parallel在大量后端节点上运行一些繁重的数据处理。我需要通过一台前端机器访问这些节点,并且我正在使用ssh:sProxyCommand
设置一个隧道来透明地访问后端。然而,我一直在达到未经验证的最大连接限制,因为并行产生的ssh连接比前端一次可以验证的多
我曾尝试使用ControlMaster auto
重用到前端的单个连接,但没有成功
问题:如何限制打开新ssh连接的速率?我能否控制在给定时间有多少未经验证的连接处于打开状态,并延迟新连接,直到另一个连接经过验证?我认为GNU Parallel需要一个“每秒最多生成这么多作业”选项。对于MaxStartups=10:30:60、CPU速度快但延迟为500毫秒的主机,使用默认工作模式可能是有意义的 我们可以在明天讨论吗parallel@gnu.org? 编辑:
--sshdelay是在20130122版本中实现的。使用
ControlMaster auto
听起来仍然是一条路要走。它不应该点击MaxStartups
,因为它保持单个连接打开(并打开该连接上的会话)。在什么方面它对你不起作用
考虑到您的ProxyCommand
设置,可能会阻止ControlMaster
工作的其他相关设置有ControlPath
:
-命名套接字ControlPath%r@%h:%p
{user}@{host}:{port}
ControlPersist
:
-保持初始连接(即使已关闭),直到被告知退出(ControlPersist yes
)-O退出
-持续1小时ControlPersist 1h