Come uscire da una sessione SSH che non risponde su Linux

Come uscire da una sessione SSH che non risponde su Linux
I lettori come te aiutano a sostenere MUO. Quando effettui un acquisto utilizzando i link sul nostro sito, potremmo guadagnare una commissione di affiliazione. Per saperne di più.

Potresti digitare in una sessione SSH remota e all'improvviso non succede nulla. Il sistema non sembra rispondere alla pressione dei tasti. Cosa fai?





MUO Video della giornata SCORRI PER CONTINUARE CON IL CONTENUTO

Ecco perché succede, come uscire da una sessione SSH che non risponde e perché potresti voler passare a Mosh.





Che cosa causa il blocco delle sessioni SSH?

Il motivo principale per cui le sessioni SSH si bloccano è l'interruzione della connessione di rete. I segnali Wi-Fi possono interrompersi o potresti lasciare che il computer entri in modalità di sospensione. Questo è più comune con i laptop. Potresti chiudere il coperchio del laptop dimenticando di essere ancora connesso tramite SSH.





SSH è stato originariamente progettato in un'epoca in cui le persone non utilizzavano abitualmente i laptop. SSH funziona meglio sulle reti cablate.

1. Terminare con una sequenza di escape

  Uscire da una sessione SSH con una sequenza di escape

Se la tua sessione SSH si blocca, prova a utilizzare una sequenza di escape. Una sequenza di escape consente di inviare segnali al client SSH anziché alla macchina remota. Le sequenze di escape sono precedute da un carattere di escape. Per impostazione predefinita sul client OpenSSH, è il file tilde (~) carattere.

quante foto possono contenere 32 GB?

Per uscire dal client SSH, puoi premere il tasto tilde e poi il tasto periodo (.) chiave.

Puoi anche cambiare il carattere di escape, se lo desideri. È possibile specificare un nuovo carattere di escape con il opzione nella riga di comando. Puoi anche modificarlo in modo permanente impostando il file EscapeChar opzione nel tuo .ssh/config file nella directory home sul computer locale.

2. Utilizzando il comando kill

  Ricerca della sessione SSH con ps e grep

Se l'utilizzo di una sequenza di escape non funziona, puoi provare a uccidere il client SSH. Per trovare l'ID del processo (PID) della sessione, invia il comando ps tramite grep:

 ps aux | grep ssh

L'argomento 'aux' di ps significa 'elenca tutti i processi sul sistema, non importa a chi appartengono o se hanno un terminale di controllo o no.'

Se disponi di più sessioni, puoi scegliere quella congelata perché l'elenco mostrerà il nome utente e l'indirizzo sul computer remoto a cui sono connesse le sessioni SSH. Una volta trovato il PID della tua sessione, puoi terminarla con il comando kill:

 kill [PID]

Per connessioni SSH migliori, usa Mosh!

  Sessione Vim remota sotto Mosh con rete disconnessa

Un modo migliore per evitare fastidiose sessioni SSH congelate è utilizzare Mosh . Se la connessione si interrompe, Mosh ti consentirà di rimanere connesso. Invierà eventuali messaggi quando ti ricollegherai. Funziona anche quando metti la macchina in modalità di sospensione.

Puoi anche utilizzare un multiplexer di terminale come GNU Screen o tmux per riprendere la sessione SSH dopo eventuali disconnessioni, ma Mosh e tmux sono ancora più potenti se usati insieme .

Per installare Mosh su Debian e Ubuntu:

il computer non riesce a trovare il disco rigido esterno
 sudo apt install mosh

E su Arch Linux:

 sudo pacman -S mosh

Sulla famiglia di distribuzioni Red Hat:

 sudo dnf install mosh

Ora puoi sbarazzarti delle sessioni SSH bloccate

Le sessioni SSH che non rispondono possono essere frustranti, ma puoi eliminarle con una sequenza di escape o il comando kill. Mosh è un sostituto ancora migliore che manterrà attiva la tua connessione anche durante le interruzioni della connessione e le sospensioni del sistema.