timeout di inattività della sessione ssh


9

La macchina Solaris su cui facciamo la maggior parte del nostro sviluppo ha la fastidiosa abitudine di scadere le sessioni SSH. Non importa se il client è il mio desktop Ubuntu, il mio desktop Solaris o il mio desktop Windows (stucco); il fattore comune è la grande macchina Solaris.

C'è qualcosa che posso fare per impedire che ciò accada? È fastidioso quando fai una pausa pranzo e le sessioni terminali che hai aperto e delicatamente configurate sono tutte congelate, quindi devi ucciderle tutte e ristabilire tutto il tuo contesto.

Risposte:


8

Sì. Configurare SSH per inviare pacchetti keepalive .


Abbiamo già "KeepAlive Sì" in / etc / ssh / sshd_config. Tuttavia non aveva un valore ClientAliveInterval; quindi l'ho aggiunto e vedremo come va.
Andrew,

1
Vale anche la pena notare che puoi farlo anche al contrario. Se non è possibile modificare la configurazione del server, è possibile ottenere il client ssh per inviare i pacchetti keep alive anziché ServerAliveInterval.
SpoonMeiser,

La posizione di quell'articolo è cambiata. Ecco quello attuale: forumone.com/blogs/post/quick-tip-ssh-keepalive
John Bachir

2

Ho scoperto che il comportamento keepalive non ha funzionato del tutto. Ho provato ad aggiungere ServerAliveInterval allo script ~ / .ssh / config ma non funziona bene con git.

Quello che ho finito è aggiungere un timestamp alla mia barra di stato 'schermo'. Questa attività è sufficiente per mantenere attiva la connessione.


Se vuoi questa funzionalità fuori dallo schermo (1), dai un'occhiata a Spinner
Drew Stephens il

1

Puoi configurare Putty per inviare anche pacchetti keep alive.

In Impostazioni, Connessione, Secondi tra keepalive.


1

Innanzitutto, devi determinare se è la tua shell che ti sta disconnettendo o ssh. Per testare, usa ssh sul tuo computer remoto e vi o meno un file.

Se molto tempo dopo puoi ancora spostarti di meno / vi, allora ssh va bene. In questo caso, determinare quale shell si sta utilizzando e disabilitare il timeout. È molto probabilmente la shell che ti sta scadendo e non SSH. Tuttavia, alcuni firewall chiuderanno le sessioni inattive se non vengono inviati keep-alive.

L'amministratore di Solaris potrebbe impedire di disabilitare il timeout nella shell, rendendo l'impostazione di sola lettura. Questo è improbabile, ma possibile. Di solito puoi aggirare il problema usando una shell diversa.


1

Se si riscontrano problemi nella riconfigurazione della shell, è possibile utilizzare la schermata GNU. Se la sessione SSH scade, basta accedere nuovamente e riconnettersi e la shell sarà esattamente com'era.


0

Se si esegue tcsh sul computer Solaris, è possibile impostare la variabile autologout. Se lo imposti su 0 (imposta autologout = 0) o lo disattivi (disinserisci autologout), il logout verrà interrotto.


0

Questa può essere un'aringa rossa, ma prova

unset TMOUT

al prompt della shell. Questo ha sicuramente funzionato per me in passato, ma non ricordo se è limitato a certe architetture (o shell).



0

Potresti correre topin un altro terminale? Ciò dovrebbe generare traffico regolare?


0

Spinner sembra la soluzione perfetta al tuo problema. Invia periodicamente personaggi nella tua sessione per impedirne il timeout.


-1

Ho sempre avuto successo con 'ClientAliveInterval 300' su server linux / bsd.


-1

Controlla la tua sshdconfigurazione per linee come queste in /etc/ssh/sshd_config:

ClientAliveInterval 600
ClientAliveCountMax 0
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.