Esiste una scorciatoia da tastiera "segreta" per forzare un'uscita: ~) Dalla sessione congelata, premi questi tasti in ordine: Enter~.La tilde (solo dopo una nuova riga) viene riconosciuta come sequenza di escape dal client ssh e il periodo dice al cliente per chiudere la sua attività senza ulteriori indugi.
Il comportamento a lungo sospeso sui problemi di comunicazione non è un bug, la sessione SSH è in attesa sperando che l'altro lato torni. Se la rete si interrompe, a volte anche giorni dopo è possibile ottenere una sessione SSH. Ovviamente puoi dirlo in modo specifico di arrendersi e morire con la sequenza sopra. Ci sono anche varie cose che puoi fare come impostare timeout keep-alive nel tuo client in modo che se non ha un collegamento attivo per un certo periodo di tempo si spenga da solo, ma il comportamento predefinito è di rimanere come collegato il più possibile!
Modifica: Un'altra utile applicazione di questa chiave di interruzione è attirare l'attenzione del client ssh locale e metterlo in background per tornare alla shell locale per un minuto, per esempio per ottenere qualcosa dalla tua cronologia, quindi metterlo a terra per continuare a lavorare in remoto. Enter~ Ctrl+ Zper inviare il client ssh alla coda dei lavori in background della shell locale, quindi fg
normalmente per ripristinarlo.
Modifica: quando si ha a che fare con sessioni SSH nidificate, è possibile aggiungere più caratteri tilde per uscire solo da una delle sessioni SSH nella catena, ma conservare le altre. Ad esempio, se sei nidificato in 3 livelli (ad es. Ssh da local-> Machine1-> Machine2-> Machine3), Enter~.tornerai alla sessione locale, Enter~~.ti lascerà in Machine1 e Enter~~~.ti lascerà in Machine2 . Funziona anche con altre sequenze di escape, come spostare temporaneamente la sessione ssh in background. Quanto sopra funziona per qualsiasi livello di nidificazione, semplicemente aggiungendo più tilde.
Infine, è possibile utilizzare Enter~?per stampare un menu di aiuto dei comandi di escape disponibili.
TL; DR: i comandi di escape supportati sono sequenze di escape supportate:
~. - terminate connection (and any multiplexed sessions)
~B - send a BREAK to the remote system
~C - open a command line
~R - request rekey
~V/v - decrease/increase verbosity (LogLevel)
~^Z - suspend ssh
~# - list forwarded connections
~& - background ssh (when waiting for connections to terminate)
~? - this message
~~ - send the escape character by typing it twice
(Note that escapes are only recognized immediately after newline.)