Ssh

增加“ssh:連接到主機 xxxxx 埠 22:連接超時”的連接超時

  • February 16, 2016

我需要對網路中的 20k+ 台機器(所有 linux)執行某種掃描,並且我正在使用 ssh 連接到每台機器,在其上執行一個小命令,然後收集輸出。我正在執行並行執行緒,每個執行緒大約有 3k 到 4k 機器。

問題是對於某些機器,登錄不起作用,在我的情況下,這表明機器沒有正確配置。SSH 大約需要一分鐘才能超時,這 1 分鐘會延遲過度掃描。

是否有任何選項可以減少 ssh 在結束嘗試連接和顯示消息之前必須等待的超時時間:

ssh: connect to host xxxxx port 22: Connection timed out

並轉移到下一台機器?這將顯著加快整體掃描速度,不僅是在我在太多機器上進行掃描時,甚至在少數機器上也是如此。

使用ConnectTimeout選項。您可以通過 -o 標誌使用它。它在幾秒鐘內接受論點。例如,要將超時時間設置為 3 秒,請使用以下命令:

ssh -o ConnectTimeout=3 username@hostname

注意:如果機器不在您的本地網路上,或者您的本地網路中存在高延遲,您應該將超時時間設置為更高的值,因為延遲可能會影響初始連接。

引用自:https://serverfault.com/questions/757484