Come fare stucco per non interrompere la mia sessione dopo qualche tempo?


34

Ogni volta puttyla sessione viene chiusa dopo qualche tempo se è inattiva.

Non ci sono timeparametri su putty, quindi come posso mantenere viva la mia puttysessione ssh?

Risposte:


15

Un'altra cosa da verificare è se il sistema sta impostando la variabile di ambiente TMOUT. Per controllare questo puoi semplicemente fare:

env | grep TMOUT

o

echo $TMOUT

Se è impostato, è possibile modificarlo o annullarlo. Per modificare il valore:

export TMOUT=3600

Dove il numero è il numero di secondi prima di disconnettersi. Altrimenti disattivalo per disattivare la funzione:

unset TMOUT

Nota, potrebbe essere che l'amministratore di sistema abbia impostato questo per motivi di sicurezza. Quindi, se non sei l'amministratore di sistema, potresti voler controllare questo prima di cambiare qualcosa da solo.


48

Abilitare i keep-alive SSH modificando la seguente impostazione su un valore positivo:

Pagina Connessione della finestra di dialogo Configurazione PuTTY

Un valore di 300 dovrebbe essere sufficiente nella maggior parte dei casi. (5 minuti). Questo fa sì che PuTTY invii periodicamente pacchetti null SSH all'host remoto, in modo che la sessione non scada.

Nota che non vogliamo l' SO_KEEPALIVEopzione più in basso in quella pagina. Questo è un meccanismo di livello molto più basso che è meglio usato solo quando il protocollo a livello di applicazione non ha il suo meccanismo keepalive. SSH lo fa, quindi non dovremmo usare keepalive TCP in questo caso.

Ci sono altre cose che possono causare la caduta delle connessioni, ma questa è una prima cosa solida da provare. Se non funziona, dovresti esaminare queste altre cose: timeout VPN, timeout del router, modifiche alle impostazioni sul server SSH remoto, connessioni instabili, ecc.


3
In alternativa, esegui qualcosa che produca un output continuo come topquando sei assente.
LawrenceC,

1
@ultrasawblade: questa è una correzione del nastro isolante; tratta semplicemente il sintomo ma non affronta il vero problema.
Kevin M,

Questa configurazione si applica alla CLI di Windows? Voglio dire, invece di salvare sessioni, creo collegamenti a putty.exe passando credenziali di accesso come argomenti (host putty.exe -l root -pw password), in caso contrario, c'è qualche argomento per applicare questa opzione tramite CLI?
Mc Kernel,

3
Questa è una soluzione eccellente, specialmente quando si lavora su una connessione instabile e non è necessario apportare una singola modifica al server (diversamente dalla soluzione accettata).
itoctopus,

Qualcuno sa come specificare questo tramite cmd line?
Janac Meena,

8

Oltre alle altre risposte, suggerirei di correre screenper poter avere la gestione della sessione anche se putty termina (la connessione si interrompe, vpn scende, ecc.).


6

Seleziona la seguente opzione in PuTTY:

inserisci qui la descrizione dell'immagine


Purtroppo, SO_KEEPALIVE sembra essere inviato solo ogni paio d'ore (almeno per impostazione predefinita), quindi un nome migliore per loro sarebbe "controlla se morto" LOL
rogerdpack

3

Basta eseguire questo sul tuo mastice questo assicurarsi, per attivare la sessione per ogni 10 minuti.

 while true; do date; sleep 600; done

Lo eseguo sempre sul mio server e non funziona.
cokedude

1

Se nessuno dei precedenti non ti è stato d'aiuto,
devi modificare le tue configurazioni di sistema sshd!
NOTA BENE, PER QUESTO BISOGNO DI PERMESSI DI RADICE!

Modifica il tuo sshd_config file, nel mio caso è stato individuato/etc/ssh/sshd_config

il contenuto era:

ClientAliveInterval 300  
ClientAliveCountMax 0

cambia in:

ClientAliveInterval 6000  
ClientAliveCountMax 3

Non dimenticare

service sshd restart


0

Nel Connection>SSHmenu putty , utilizzare il seguente valore come Remote command: bash --rcfile <(echo 'source ~/.bash_profile; unset TMOUT').

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.