Sim, você pode usar a opção ConnectTimeout
. De man ssh_config
:
ConnectTimeout: Specifies the timeout (in seconds) used when connecting to the SSH server, instead of using the default system TCP timeout. This value is used only when the target is down or really unreachable, not when it refuses the connection.
Portanto, por um tempo limite de 5 segundos:
ssh -o ConnectTimeout=5 host true
Observe que isso não resolverá o caso de você se conectar rapidamente, mas o comando real em execução é lento, seja na máquina de conexão ou na máquina à qual você está se conectando. Você pode querer lidar com esse caso usando ambos ConnectTimeout
e o binário timeout
do GNU coreutils com um tempo limite maior como backup.
Por exemplo, isso limitará as conexões que levam mais de 5 segundos e também terminará se algo em toda a operação levar mais de 7 segundos (enviando SIGTERM
). 3 segundos depois disso, se ssh
ainda não tiver saído, enviaremos SIGKILL
:
timeout 7 -k 3 ssh -o ConnectTimeout=5 host true
Se você também quer usar timeout
ou não, depende do que você deseja alcançar, mas pelo menos permitirá que você falhe rápido.