Iată ce trebuie să faceți când conexiunile dvs. SSH pe Linux nu mai răspund și apăsările de taste nu funcționează.

Este posibil să tastați într-o sesiune SSH la distanță și, brusc, nu se întâmplă nimic. Sistemul nu pare să răspundă la apăsările dvs. de taste. Ce faci?

Iată de ce se întâmplă, cum să părăsiți o sesiune SSH care nu răspunde și de ce ați putea dori să treceți la Mosh.

Ce cauzează înghețarea sesiunilor SSH?

Principalul motiv pentru care sesiunile SSH îngheață este căderea conexiunii la rețea. Semnalele Wi-Fi pot scădea sau ați putea lăsa computerul să intre în repaus. Acest lucru este cel mai frecvent în cazul laptopurilor. Este posibil să închideți capacul laptopului în timp ce uitați că sunteți încă conectat prin SSH.

SSH a fost conceput inițial într-o epocă înainte ca oamenii să folosească în mod obișnuit laptopurile. SSH funcționează mai bine în rețelele cu fir.

1. Terminați cu o secvență de evadare

Dacă sesiunea dvs. SSH se blochează, încercați să utilizați o secvență de escape. O secvență de evadare vă permite să trimiteți semnale către clientul SSH în loc de mașina de la distanță. Secvențele de evacuare sunt prefațate de un caracter de evadare. În mod implicit, pe clientul OpenSSH, este

instagram viewer
tilde (~) caracter.

Pentru a ieși din clientul SSH, puteți apăsa tasta tilde și apoi tasta perioada (.) cheie.

De asemenea, puteți schimba caracterul de evacuare dacă doriți. Puteți specifica un nou caracter de escape cu ajutorul -e opțiune la linia de comandă. De asemenea, îl puteți schimba permanent prin setarea EscapeChar opțiune în dvs .ssh/config fișier în directorul dvs. de acasă de pe computerul local.

2. Folosind comanda kill

Dacă folosirea unei secvențe de evacuare nu funcționează, puteți încerca să omorâți clientul SSH. Pentru a găsi ID-ul procesului (PID) al sesiunii dvs., transmiteți comanda ps prin grep:

ps aux | grep ssh

Argumentul „aux” pentru ps înseamnă „enumerați fiecare proces din sistem, indiferent cui îi aparține sau dacă are un terminal de control sau nu."

Dacă aveți mai multe sesiuni, o puteți alege pe cea înghețată, deoarece lista va afișa numele de utilizator și adresa de pe mașina de la distanță la care sunt conectate sesiunile SSH. După ce ați găsit PID-ul sesiunii dvs., îl puteți încheia cu comanda kill:

kill [PID]

Pentru conexiuni SSH mai bune, folosiți Mosh!

O modalitate mai bună de a evita sesiunile SSH înghețate enervante este utilizarea Mosh. Dacă conexiunea se întrerupe, Mosh vă va permite să rămâneți conectat. Va trimite orice mesaj când vă reconectați. De asemenea, funcționează când puneți aparatul în stare de repaus.

De asemenea, puteți utiliza un multiplexor de terminal, cum ar fi GNU Screen sau tmux, pentru a vă relua sesiunea SSH după orice deconectări, dar Mosh și tmux sunt și mai puternice atunci când sunt utilizate împreună.

Pentru a instala Mosh pe Debian și Ubuntu:

sudo apt install mosh

Și pe Arch Linux:

sudo pacman -S mosh

Pe familia de distribuții Red Hat:

sudo dnf install mosh

Acum puteți scăpa de sesiunile SSH blocate

Sesiunile SSH care nu răspund pot fi frustrante, dar puteți scăpa de ele cu o secvență de evadare sau comanda kill. Mosh este un înlocuitor și mai bun care vă va menține conexiunea vie prin întreruperi de conexiune și opriri ale sistemului.