Ci sono due opzioni relative all'inattività di ssh in /etc/ssh/sshd_config file:
ClientAliveInterval ClientAliveCountMax
Quindi il valore di timeout viene calcolato moltiplicando ClientAliveInterval con ClientAliveCountMax.
timeout interval = ClientAliveInterval * ClientAliveCountMax
Il significato dei due parametri può essere trovato nella pagina man di sshd_config :
# man sshd_config ClientAliveCountMax Sets the number of client alive messages (see below) which may be sent without sshd(8) receiving any messages back from the client. If this threshold is reached while client alive messages are being sent, sshd will disconnect the client, terminating the session. It is important to note that the use of client alive messages is very different from TCPKeepAlive (below). The client alive messages are sent through the encrypted channel and therefore will not be spoofable. The TCP keepalive option enabled by TCPKeepAlive is spoofable. The client alive mechanism is valuable when the client or server depend on knowing when a connection has become inactive. The default value is 3. If ClientAliveInterval (see below) is set to 15, and ClientAliveCountMax is left at the default, unresponsive SSH clients will be disconnected after approximately 45 seconds. This option applies to protocol version 2 only. ClientAliveInterval Sets a timeout interval in seconds after which if no data has been received from the client, sshd(8) will send a message through the encrypted channel to request a response from the client. The default is 0, indicating that these messages will not be sent to the client. This option applies to protocol version 2 only.
Esistono 2 metodi per configurare il timeout di inattività. Ad esempio, in questo post configureremo un intervallo di disconnessione automatica di 10 minuti.
Metodo 1
1.Configura il valore di timeout nel file /etc/ssh/sshd_config con i valori dei parametri sottostanti.
# vi /etc/ssh/sshd_config ClientAliveInterval 5m # 5 minutes ClientAliveCountMax 2 # 2 times
2. Riavvia il servizio ssh dopo aver impostato i valori.
# service sshd restart
Ciò renderebbe il timeout della sessione in 10 minuti poiché il valore ClientAliveCountMax viene moltiplicato per il valore ClientAliveInterval.
Metodo 2
1. È possibile impostare il valore ClientAliveCountMax su 0 e il valore ClientAliveInterval su 10 m per ottenere lo stesso risultato.
# vi /etc/ssh/sshd_config ClientAliveInterval 10m # 10 minutes ClientAliveCountMax 0 # 0 times
2. Riavvia il servizio ssh dopo aver impostato i valori.
# service sshd restart
Differenza tra metodo 1 e metodo 2
C'è una piccola differenza tra questi due metodi. Per il primo metodo, sshd invierà messaggi, qui chiamati Client Alive Messages, attraverso il canale crittografato per richiedere una risposta dal client se il client è inattivo per cinque minuti. Il demone sshd invierà questi messaggi al massimo due volte. Se questa soglia viene raggiunta durante l'invio dei messaggi Client Alive, sshd disconnetterà il client.
Ma per il secondo metodo, sshd non invierà messaggi vivi al client e terminerà la sessione direttamente se il client è inattivo per 10 minuti.