如何降低SSH连接超时时间值

12

我有一个远程主机IP地址列表。我编写了一个脚本来逐个连接列表中的所有主机。我的问题是,有时当IP地址不可用时,脚本就会等待一段时间(可能几分钟)然后再去执行下一个主机。因此,我想缩短这个等待时间。例如,在 10 秒钟后,我希望SSH连接超时,然后我的脚本尝试下一个IP地址。那么我该如何调整它呢?

谢谢


这是 如何在shell脚本中设置SSH超时 的副本。 - Murmel
1个回答

24

如果您调用ssh脚本,可以使用类似以下的内容

ssh -o ConnectTimeout=10  <hostName>

其中10是秒数


实际上我想做的是:ssh-keygen for HOST in $(cat /scripts/ip_list); do ssh-copy-id -i ~/.ssh/id_rsa.pub ${HOST} done所以我不知道在哪里可以使用-o选项。我可以尝试像这样做: [code] cat ~/.ssh/id_rsa.pub | ssh -o ConnectTimeout=10 username@${HOST} 'cat >> .ssh/authorized_keys'但问题是,其中一些远程主目录没有/.ssh文件夹。因此,当它找不到/.ssh/authorized_keys时,命令将失败。 - JavaRed
1
如何将毫秒值添加到超时时间? - Sarvnashak
据我所知,ssh选项ConnectTimeout的粒度为1秒,最小值为1秒。我同意对于本地网络连接,将超时设置为50-100毫秒可能是有意义的。如果您需要快速连接到其他服务器,请查看设置ControlMasterControlPath并设置ControlPersist 1 - Mikko Rantalainen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接