Se siete amministratori di sistema, o come me vi trovate a gestire quotidianamente server remoti via SSH vi sarà capitato di aprire una shell, iniziare a lavorare, poi essere distratti da una mail o una telefonata per 5 minuti e, al cambio di contesto, trovare la sessione SSH irrimediabilmente disconnessa.
Il messaggio tipico di errore in questo caso è:
Write Failed: broken pipe
Vediamo, agendo solo sul client SSH, come fare ad evitarlo tramite una banale configurazione da pochi secondi.
Connessioni SSH “immortali”
La soluzione è molto semplice e consiste nel creare un alias del comando ssh in modo che, senza doverlo digitare ad ogni connessione, venga utilizzata l’opzione ServerAliveInterval. Questa opzione consente di esplicitare, in secondi, un periodo trascorso il quale il client invia un pacchetto sulla socket per mantenere la connessione aperta.
echo 'alias ssh="ssh -o ServerAliveInterval=15"' >> ~/.bash_profile
Al riavvio successivo della macchina la configurazione sarà attiva. E’ anche possibile attivarla senza reboot semplicemente forzando il reload del bash_profile con il comando.
. ~/.bash_profile
Questa soluzione è compatibile con tutti i sistemi Unix, e testata personalmente da me su Mac OS X, CentOS, Debian ed Ubuntu. Non ho provato su altre distribuzioni ma non vedo ragioni per cui non dovrebbe funzionare.
ELbuild, gestione server remoti
Avete necessità di un affiancamento nella gestione del vostro parco server o di consulenza sulla razionalizzazione della vostra infrastruttura?
Contattateci ed analizzeremo insieme le vostre necessità e le possibili soluzioni.