ssh
有参数-o ConnectTimeout=10
来设置超时时间(以秒为单位)建立连接,但一旦建立连接,该参数就不再有效。当已建立的连接断开时,ssh
需要很长时间才能告诉我Broken Pipe
。这在很多情况下都很好,因为我可以在出现网络问题后继续工作,但在某些情况下,我只想使用一个很短的超时时间,可能为 10 到 20 秒,例如在使用类似 的工具时sshuttle
。我该怎么做?
答案1
该选项ClientAliveInterval
完全按照您的需要执行,它基本上会在指定的间隔(以秒为单位)内发送 ping,如果没有收到答复,则会终止连接。
要控制终止连接的速度,您可以使用ClientAliveCountMax
,这是在认为连接终止之前未收到响应而发送的最大 ping 次数。