GNU/Linux >> Linux Esercitazione >  >> Linux

Come mantenere le sessioni SSH remote in esecuzione dopo la disconnessione

SSH (Secure Shell) è il sistema di rete crittografato end-to-end che consente agli utenti di accedere in remoto dal client al server o al sistema. Grazie al suo sistema di sicurezza della crittografia asimmetrica, è praticamente sicuro accedere al server anche da una rete client non sicura. Ma a volte a causa dell'inattività o del segnale di rete difettoso, l'accesso remoto SSH può essere disconnesso. Qualunque sia il motivo, come amministratore Linux, è fondamentale mantenere le sessioni e i processi SSH in esecuzione dopo la disconnessione.

Motivi per cui le sessioni SSH vengono disconnesse

In poche parole, l'errore del proxy del tunnel SSH, il timeout della rete, l'utilizzo della porta di rete sbagliata o addirittura il mancato accesso al sistema come utente root possono anche farti disconnesso dall'amministrazione remota SSH. In questo post, discuteremo la domanda più frequente su SSH; come mantenere in esecuzione sessioni e processi SSH dopo che si è verificata la disconnessione.

1. Continua a eseguire sessioni SSH utilizzando lo screen Comando

La screen command è il comando più utilizzato e utile per l'amministrazione SSH. La screen il comando può risolvere i problemi relativi al nome host sia per gli indirizzi IPv4 che IPv6. Con le funzionalità di root, lo screen il comando può disconnettersi o chiudere una sessione dall'estremità client all'estremità server. Se sei un principiante di Linux SSH, ecco alcune CLI che possono aiutarti a installare e trovare i manuali dello screen comando.

Per Ubuntu:

$ sudo apt install screen

Per OpenSUSE:

$ sudo zypper install screen

Per Arch Linux:

- -
$ sudo pacman -S screen

Per Red Hat Enterprise Linux:

$ sudo yum install screen

Al termine dell'installazione, inizia a monitorare la schermata iniziale del tuo sistema.

$ screen
$ screen --help

Una volta che hai l'accesso, SSH nel server, vuoi ottenere l'accesso in remoto. Se stai pianificando una lunga notte di lavoro dalla tua postazione, ma non vuoi disattivare il tuo client SSH, puoi utilizzare lo screen comando. Questo può staccare la tua sessione dello schermo, ma non preoccuparti, le attività che hai avviato verranno completate.

Per staccare lo schermo premi Ctrl-A e poi Ctrl-D dalla tua tastiera Puoi accedere per monitorare l'avanzamento dei lavori in qualsiasi momento dal tuo terminale. Per riconnetterti o connetterti a quello esistente con la sessione, usa la seguente CLI.

$ screen -r
screen -D -r

2. Continua a eseguire sessioni SSH utilizzando tmux Strumento

Il tmux o terminal multiplexer è uno strumento molto popolare e utile per programmatori e amministratori di sistema che consente agli utenti di passare da un programma all'altro nello stesso terminale. Per mantenere le sessioni SSH in esecuzione in background, tmux può essere una soluzione molto rapida. Può scollegare e ricollegare le applicazioni in cui i processi vengono mantenuti in esecuzione in background. Ecco le istruzioni per l'installazione di tmux per le distribuzioni Linux.

Per Arch Linux:

$ sudo pacman -S tmux

Per Red Hat Enterprise Linux:

$ sudo yum install tmux

Per Ubuntu:

$ sudo apt-get install tmux

Per OpenSUSE:

$ sudo zypper install tmux

Dopo aver installato tmux , avvia la tmux session usando i comandi del terminale. Non ci vorrà molto tempo per essere installato. Una volta terminata l'installazione, ora puoi iniziare con tmux . Per avviare tmux , digita tmux nel terminale.

$ tmux

Se devi eseguire più di un multiplexer di terminale per mantenere tutte le sessioni SSH in esecuzione in background, in tal caso, potresti riscontrare difficoltà nel passare da tmux a tmux . Ecco le righe di comando per passare da una all'altra.

$ tmux detach
$ tmux attach
$ tmux attach -t 2

Per controllare tutti i tmux schermo usa la list di tmux comando.

$ tmux ls

3. Continua a eseguire sessioni SSH utilizzando byobu Strumento

Lo strumento byobu viene utilizzato principalmente per l'amministrazione SSH remota e il monitoraggio su schermo su Linux. È un software open source e può essere utilizzato insieme a tmux o la screen attrezzo. Puoi vedere lo stato attuale, le notifiche e i messaggi con il byobu attrezzo. Sebbene il byobu viene installato di default con Ubuntu. Ma in caso contrario, puoi installarlo all'interno della tua macchina Linux. Per verificare se byobu è installato o meno nel tuo sistema controllando le altre versioni di byobu.

$ byobu --version

Quindi abilita byobu, ti aiuterà a mantenere le sessioni SSH in esecuzione in background anche dopo la disconnessione.

$ byobu-enable

Qui vengono spiegati i processi di installazione con CLI.

Per Ubuntu:

$ sudo apt install byobu

Per OpenSUSE:

$ sudo zypper addrepo https://download.opensuse.org/repositories/utilities/openSUSE_Leap_42.3/utilities.repo
$ sudo zypper refresh
$ sudo zypper install byobu

Per Arch Linux:

$ yaourt -S byobu
$ packer -S byobu

Per Red Hat Enterprise Linux:

$ sudo yum install byobu

Per Fedora:

$ sudo dnf install byobu

Per iniziare con byobu , digita semplicemente byobu nel terminale e premi Invio.

$ byobu

Ora, se stai usando tmux o la screen , puoi scegliere e selezionare tra uno qualsiasi di essi per la collaborazione di back-end.

$ byobu-select-backend

Ora puoi gestire e mantenere le sessioni SSH in esecuzione in background dopo la disconnessione, utilizzare i tasti funzione della tastiera di sistema. Per iniziare con SSH insieme a byobu, premi CTRL+SHIFT+F2 dalla tastiera per abilitare l'ambiente SSH. Per spostare le tue sessioni SSH avanti e indietro puoi usare ALT+UP e ALT+DOWN .

Per disconnettere le tue sessioni SSH premi F6 dalla tastiera. Ora, se stai cercando di staccare ma non disconnettere la sessione, ecco qua. Per scollegare le sessioni SSH e continuare a connetterti, premi SHIFT+F6 . Ecco un altro comando da tastiera aggiuntivo per te. Per mantenere attiva solo la sessione dello schermo e chiudere tutte le altre finestre premere ALT+F6 .

4. Continua a eseguire sessioni SSH utilizzando nohup Comando

Il nohup o il comando 'no hangup' è uno strumento alternativo molto utile per lo schermo o il tmux. Consente inoltre agli utenti di mantenere in esecuzione le sessioni SSH anche dopo la disconnessione. Il nohup Il comando dice al sistema di eseguire tutti i processi in background evitando che il segnale riattacchi (SIGHUP).

Per controllare il nohup manuali e opzioni dal tuo terminale Linux, digita il seguente comando nel terminale e premi Invio.

$ nohup options

Per controllare gli elenchi di lavori attualmente attivi, utilizzare il -l comando dal tuo terminale.

$ jobs -l

Ora, per la connessione SSH, per evitare la perdita di connessione e mantenere le sessioni in esecuzione dopo la disconnessione, usa le righe di comando nohup che seguono il tuo lavoro. Puoi anche ottenere l'elenco di output dei tuoi lavori in un file di testo usando il comando cat insieme al comando nohup.

$ nohup ./hello.sh
$ cat nohup.out

Per eseguire un processo in background, puoi utilizzare & simbolo subito dopo il nohup comando. Ad esempio, se voglio testare il ping per wordpress-408970-1286763.cloudwaysapps.com in background, la riga di comando sarà proprio come la seguente riga di seguito. E quando pensi che il tuo lavoro sia finito, per vedere il risultato, usa il pgrep comando.

$ nohup ping www.ubuntupit.com &
$ pgrep -a ping

5. Continua a eseguire sessioni SSH usando il disown Comando

Se non hai i privilegi di root di sistema, forse questo risolverà il tuo problema. Il disown comando può rendere qualsiasi attività non elencata dal registro di sistema in esecuzione. Pertanto, può nascondere un processo in corso per evitare tutti gli errori di disconnessione automatica o il riaggancio del segnale (SIGHUP). Puoi effettivamente utilizzare il comando di gestione del processo diswon per mantenere in esecuzione le sessioni SSH nascondendo la tua attività.

Per rimuovere o nascondere la tua attività dal task manager, usa il comando diswon nel terminale.

$ disown <task>

Per controllare lo stato corrente dell'attività, usa il comando della shell corrente.

$ current shell

Puoi anche impostare un elenco di attività su un comando di terminale a riga singola.

$ disown jobs1
$ disown jobs1 jobs2 ... jobsn

E per controllare l'elenco delle attività, usa -l comando.

$ jobs -l

Per rimuovere tutti i lavori correnti dalla finestra, digita -a sintassi seguita dal comando disown.

$ disown -a

Per rimuovere solo uno o il lavoro in esecuzione dalla finestra, utilizzare il -r sintassi seguita dal comando diswon.

$ disown -r

Ora per SSH, per eseguire un lavoro in background dopo che la sessione è stata connessa, usa -h sintassi. Questo processo può mantenere le sessioni SSH in esecuzione anche dopo la disconnessione.

$ disown -h jobID
$ disown -h %2

Correzione del timeout Errore di SSH in RHEL

Quando sei connesso a SSH su Red Hat Enterprise Linux (RHEL), potresti riscontrare un problema di timeout frequente e perdere la connessione. Questo problema si verifica a causa del tempo di risposta non valido dal lato client o dall'estremità host. Nella directory principale di Red Hat, devi trovare e modificare sshd_config.txt file per risolvere questi problemi di timeout. Una volta terminato, puoi ripristinare la tua connessione SSH anche dopo esserti disconnesso.

Lì dentro sshd_config.txt , troverai due opzioni denominate ClientAliveInterval e ClientAliveCountMax , è necessario modificare questi file di registro per massimizzare il tempo di risposta dal server al client. L'intervallo di timeout viene calcolato moltiplicando i valori di ClientAliveInterval e ClientAliveCountMax.

Tutto ciò che serve è modificare la durata temporale di questi due valori in base alla durata della risposta del sistema e della rete. Ti consente di massimizzare il tempo 10 minuti per la fine dell'intervallo del client e 5 volte per il conteggio dei client, quindi il tuo registro di testo all'interno di sshd_config.txt il file sarà come di seguito. E poi, riavvia l'SSH.

ClientAliveInterval 10m
ClientAliveCountMax 5

Pensieri finali

Per un amministratore di sistema, mantenere in esecuzione sessioni e processi SSH è un lavoro cruciale per soddisfare il cliente e per svolgere l'attività. Essere disconnessi e perdere frequenti sessioni è molto fastidioso e fastidioso. Quindi, in questo post, abbiamo cercato di discutere e illustrare i motivi per cui le sessioni SSH vengono disconnesse e abbiamo anche descritto tutti i metodi possibili su come mantenere le sessioni SSH in esecuzione dopo la disconnessione.

Se hai mai affrontato la seccatura della disconnessione della sessione SSH e sai quanto potrebbe essere fastidiosa, condividi la tua esperienza con noi. E commenta anche se hai qualcosa da aggiungere o chiedere qualcosa relativo a questo post nella sezione commenti. Non dimenticare di condividere questo post con i tuoi amici sui social media.


Linux
  1. Ssh:come eseguire uno script immediatamente dopo la connessione tramite Ssh?

  2. Come usare i booleani nel guscio di pesce?

  3. Come mantenere attive le sessioni SSH

  4. Come elencare le sessioni dello schermo in esecuzione?

  5. Come recuperare una shell dopo una disconnessione

Tutorial completo su come impostare chiavi SSH e connessioni SSH

Come SSH in una directory particolare su Linux

Come configurare l'inoltro X11 utilizzando SSH in Linux

Come eseguire un backup Linux remoto utilizzando SSH

Come utilizzare SSH per connettersi a un server remoto

Procedura:Amministrazione remota di FreeBSD