Se o servidor SSH desaparecer, a conexão TCP ainda estará ativa do ponto de vista do cliente, e o cliente SSH o aguardará por padrão.
A opção ConnectTimeout
não faz diferença, de acordo com o nome, é usada quando conectando , não quando a conexão já está ativa.
Em vez disso, você provavelmente deseja usar ServerAliveInterval
e ServerAliveCountMax
:
ServerAliveCountMax
Sets the number of server alive messages (see below) which may be sent without ssh(1) receiving any messages back from the server. If this threshold is reached while server alive mes‐ sages are being sent, ssh will disconnect from the server, terminating the session.
ServerAliveInterval
Sets a timeout interval in seconds after which if no data has been received from the server, ssh(1) will send a message through the encrypted channel to request a response from the server. The default is 0, indicating that these messages will not be sent to the server.
Isso esperaria cerca de 3x5 = 15 segundos, embora ServerAliveCountMax
esteja definido como 3 por padrão, portanto, você só precisa definir ServerAliveInterval
.
ServerAliveCountMax 3
ServerAliveInterval 5