Timeout connessione SSH dietro NAT (Fastweb)

Chi come me lavora tutto il giorno su vari server dislocati per mezzo mondo e chi come me usa connessioni dietro NAT (come per esempio qualsiasi tipo di connessione Fastweb) avra’ probabilmente sperimentato la frustazione di vedersi “saltare” il terminale SSH ogni tot minuti e dover quindi ricollegarsi all’host e ripetere le operazioni che stava eseguendo (con rischio non da poco di perdita di dati).
Questo succede perche’ molte connessioni nattate (e Fastweb non e’ diversa anzi…) hanno impostato un timeout che killano le connessioni non attive per piu’ di tot minuti (in idle), ovviamente non vi accorgerete se state navigando in un sito o se state usando MSN, ve ne accorgete soprattutto quando avete un terminale ssh aperto su un host esterno e dopo tot minuti di inattivita’ ve lo trovate chiuso con un bel “Timeout connection lost” o cose simili.

Come rimediare a questo fastidioso nonche’ pericoloso comportamento? Semplicissimo, editate il file /etc/ssh/ssh_config (del client dal quale fate la connessione non del server sul quale vi connettete!) e aggiungete la riga:

ServerAliveInterval 150

L’opzione ServerAliveInterval dice al vostro client ssh di mandare un segnale del tipo “tienimi_vivo” all’host esterno sul quale siamo collegati, il quale ricevuto il segnale (prima dello scadere del timeout) non vi chiudera’ piu’ la connessione. Ho scritto “prima dello scadere del timeout” perche’ ovviamente, se settiamo un valore piu’ alto di quello di timeout verremo buttati fuori prima di poter mandare il segnale, quindi fate attenzione a settare bene il valore 150 (in secondi), dovra’ essere piu’ basso del valore di timeout del NAT (per Fastweb credo che sia 5 minuti, 300 secondi, quindi 150 andra’ benissimo).

Queste le spiegazione del man di ssh_config:

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, or 300 if the BatchMode option is set. This option applies to protocol version 2 only. ProtocolKeepAlives is a Debian-specific compatibility alias for this option.

Tags: , , , , , , , , ,

Post simili:

If you enjoyed this post, please consider to leave a comment or subscribe to the feed and get future articles delivered to your feed reader.

2 Responses to “Timeout connessione SSH dietro NAT (Fastweb)”
  1. Daniele S.
    16:22 on October 9th, 2007

    Se utilizzi putty puoi impostare da li il keepalive.
    dai un’occhiata quì
    http://www.danielesalamina.it/workuni

  2. Stefano Gorgoni
    14:53 on October 8th, 2007

    grazie, Michele! :)

Leave a comment

(required)

(required)


*

Categories