Keeping SSH connections alive
sabato, 14 ottobre 2006Vi è mai capitato di loggarvi su un server remoto tramite SSH e di trovare dopo qualche minuto di inattività la connessione chiusa? A me sì, ed a volte è davvero scocciante. Per evitare che succeda esistono fondamentalmente 2 soluzioni: una lato server e un’altra lato client. In questo post prenderò in considerazione la prima soluzione.
Per risolvere il problema, è sufficiente modificare il file di configurazione /etc/ssh/sshd_config aggiungendo le seguenti opzioni:
ClientAliveInterval 15 ClientAliveCountMax 5
Utilizzare queste opzioni al posto del più classico TCPKeepAlive è consigliabile in quanto così facendo i messaggi per tenere viva la connessione vengono inviati tramite il canale criptato e non sono perciò spoofabili.
Se come me utilizzate come distribuzione una Debian Sarge, troverete probabilmente nel vostro file di configurazione l’opzione KeepAlive impostata a yes di default. Cancellatela e sostituitela con TCPKeepAlive (l’utilizzo di KeepAlive è deprecato e tra l’altro non è nemmeno contemplata nel manuale):
TCPKeepAlive no
Con i valori utilizzati nell’esempio, un client che non risponde verrà disconnesso automaticamente dopo 75 secondi (15 x 5).
Dopo aver modificato la configurazione è necessario riavviare sshd per applicare le modifiche:
sudo invoke-rc.d ssh restart

Leave a reply