我需要在网络中的20k+机器上执行某种扫描(都是linux),我使用ssh连接到每台机器,在它上运行一个小命令,并收集输出。我运行的并行线程与大约3k到4k的机器在每台。
问题是,对于某些机器来说,登录是不工作的,在我的例子中,这表明机器没有得到适当的配置。SSH大约需要一分钟才能超时,这1分钟延迟了过载扫描。
在结束连接和显示消息的尝试之前,是否有任何选项可以缩短ssh必须等待的超时时间:
ssh: connect to host xxxxx port 22: Connection timed out然后转移到下一台机器?这将大大加快扫描的总体速度,不仅是当我对太多的机器进行扫描时,甚至是在少数的机器上。
发布于 2016-02-16 10:47:24
使用ConnectTimeout选项。您可以通过-o标志使用它。它以秒为单位进行论证。例如,若要将超时时间设置为3秒,请使用以下命令:
ssh -o ConnectTimeout=3 username@hostname注意:如果机器不在本地网络上,或者本地网络中存在较高的延迟时间,则应将超时时间保持在较高的值,因为延迟可能会影响初始连接的建立。
https://serverfault.com/questions/757484
复制相似问题