我需要对网络中的 20k+ 台机器(所有 linux)执行某种扫描,并且我正在使用 ssh 连接到每台机器,在其上运行一个小命令,然后收集输出。我正在运行并行线程,每个线程大约有 3k 到 4k 台机器。
问题是对于某些机器,登录不起作用,在我的情况下,这表明机器没有正确配置。SSH 大约需要一分钟才能超时,这 1 分钟会延迟过度扫描。
是否有任何选项可以减少 ssh 在结束尝试连接和显示消息之前必须等待的超时时间:
ssh: connect to host xxxxx port 22: Connection timed out
并转移到下一台机器?这将显着加快整体扫描速度,不仅是在我在太多机器上进行扫描时,甚至在少数机器上也是如此。
使用ConnectTimeout选项。您可以通过 -o 标志使用它。它在几秒钟内接受论点。例如,要将超时时间设置为 3 秒,请使用以下命令:
注意:如果机器不在您的本地网络上,或者您的本地网络中存在高延迟,您应该将超时时间设置为更高的值,因为延迟可能会影响初始连接。