Мне нужно выполнить своего рода сканирование более 20 тыс. Машин в сети (все Linux), и я использую ssh для подключения к каждой машине, запускаю на ней небольшую команду и собираю вывод. Я запускаю параллельные потоки с количеством машин от 3 до 4 тысяч в каждом.
Проблема в том, что на некоторых машинах не работает вход в систему, что в моем случае означает, что машина не была должным образом подготовлена. SSH занимает около минуты до тайм-аута, эта 1 минута задерживает избыточное сканирование.
Есть ли возможность уменьшить время ожидания ssh перед завершением попытки подключения и отображением сообщения:
ssh: connect to host xxxxx port 22: Connection timed out
и переходить к следующей машине? Это значительно ускорит сканирование в целом, не только когда я выполняю сканирование на слишком большом количестве машин, но даже на небольшом количестве машин.
Использовать ConnectTimeout вариант. Вы можете использовать его с помощью флага -o. Аргумент занимает секунды. Например, чтобы установить период ожидания в 3 секунды, используйте следующее:
ssh -o ConnectTimeout=3 username@hostname
Примечание. Если компьютер не находится в вашей локальной сети или в вашей локальной сети наблюдается большая задержка, вам следует установить более высокое значение периода ожидания, поскольку задержка может повлиять на установление начального соединения.