GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come impedire che la sessione SSH venga scaduta

Il server ssh di Linux non disconnette mai la sessione ssh dal lato server per impostazione predefinita, controlla la configurazione di switch/router/firewall per evitare il problema senza modificare la configurazione di server/client ssh. Se la sessione ssh viene disconnessa a causa dell'inattività e si desidera interromperla, seguire i passaggi seguenti sul lato client o server come descritto di seguito:

Impostazioni lato client

Per abilitare il keep alive a livello di sistema (è richiesto l'accesso come root), modifica il file di configurazione /etc/ssh/ssh_config . Allo stesso modo, per configurare le impostazioni solo per un utente specifico, modifica ~/.ssh/config (creare il file se non esiste). Inserisci quanto segue:

Host *
ServerAliveInterval 300
ServerAliveCountMax 2

Queste impostazioni faranno in modo che il client o il server SSH inviino un pacchetto nullo all'altro lato ogni 300 secondi (5 minuti) e rinunceranno se non riceve alcuna risposta dopo 2 tentativi, a quel punto è probabile che la connessione sia stata scartato comunque.

Dalla pagina man di ssh_config:

ServerAliveCountMax:

Imposta il numero di messaggi attivi del server (vedi sotto) che possono essere inviati senza che ssh(1) riceva alcun messaggio dal server. Se questa soglia viene raggiunta durante l'invio di messaggi di server attivi, ssh si disconnetterà dal server, terminando la sessione. È importante notare che l'uso dei messaggi server alive è molto diverso da TCPKeepAlive (sotto). I messaggi in tempo reale del server vengono inviati tramite il canale crittografato e pertanto non saranno contraffatti. L'opzione TCP keep-alive abilitata da TCPKeepAlive è falsificabile. Il meccanismo del server attivo è prezioso quando il client o il server dipendono dal sapere quando una connessione è diventata inattiva.

Il valore predefinito è 3. Se, ad esempio, ServerAliveInterval (vedi sotto) è impostato su 15 e ServerAliveCountMax viene lasciato al valore predefinito, se il server non risponde, ssh si disconnetterà dopo circa 45 secondi. Questa opzione si applica solo al protocollo versione 2; nella versione 1 del protocollo non esiste alcun meccanismo per richiedere una risposta dal server ai messaggi attivi del server, quindi la disconnessione è responsabilità dello stack TCP.

Intervallo ServerAlive:

Imposta un intervallo di timeout in secondi dopo il quale se non sono stati ricevuti dati dal server, ssh(1) invierà un messaggio attraverso il canale crittografato per richiedere una risposta dal server. Il valore predefinito è 0, a indicare che questi messaggi non verranno inviati al server o 300 se è impostata l'opzione BatchMode. Questa opzione si applica solo al protocollo versione 2. ProtocolKeepAlives e SetupTimeOut sono alias di compatibilità specifici di Debian per questa opzione.

Impostazione lato server

Se si dispone dell'accesso come amministratore al server, è possibile configurare le opzioni ClientAliveInterval, TCPKeepAlive e ClientAliveCountMax nel file di configurazione SSHd. Il percorso del file è /etc/ssh/sshd_config

# vi /etc/ssh/sshd_config
ClientAliveInterval 30
TCPKeepAlive yes 
ClientAliveCountMax 99999

Sarà necessario riavviare il server SSH per rendere effettive le modifiche.

# service sshd restart


Cent OS
  1. Come SSH su Linux da Android

  2. Come eseguire la scansione ClamAV da SSH nel server cPanel?

  3. Come posso forzare il distacco dello schermo da un'altra sessione SSH?

  4. Come interrompere l'aggiunta di IP da EC2 a known_hosts per ssh?

  5. Come eseguire SCP dal server Linux al client Windows

Come abilitare SSH su openSUSE

Come disconnettersi dalla sessione di Ubuntu [Suggerimento per principianti]

Come abilitare il server SSH su Ubuntu 22.04

Come migrare da CentOS 8 a CentOS Stream Server:

Come disconnettere un utente da SSH in Linux

Come SSH nel tuo server Linux da Windows