ssh
имеет парамать -o ConnectTimeout=10
для установки тайм-аута в секундах при установлении соединения но однажды соединение было установлено, параметр больше не имеет эффекта. Когда уже установленное соединение умирает, ssh
занимает невероятное количество времени прежде, чем сказать мне Broken Pipe
. Это хорошо во многих случаях, в то время как я могу продолжить работу после наличия сетевых проблем, но существуют сценарии, в которых я хочу использовать просто маленький тайм-аут, возможно, 10 - 20 секунд, например, при использовании инструментов как sshuttle
. Как я могу сделать это?
Опция ClientAliveInterval
делает точно, что Вы хотите, она в основном отправляет ping в указанном интервале (в секундах) и уничтожает соединение, если она не получает ответ.
, Чтобы управлять, как быстро это уничтожает соединение, можно использовать ClientAliveCountMax
, который является максимальным количеством ping для отправки, не получая ответ прежде, чем считать соединение мертвым.