Så här gör du när dina SSH-anslutningar på Linux inte svarar och tangenttryckningarna inte fungerar.

Du kanske skriver i en fjärrstyrd SSH-session, och plötsligt händer ingenting. Systemet verkar inte svara på dina tangenttryckningar. Vad gör du?

Här är varför det händer, hur du avslutar en SSH-session som inte svarar och varför du kanske vill byta till Mosh.

Vad får SSH-sessioner att frysa?

Den främsta anledningen till att SSH-sessioner fryser är att nätverksanslutningen avbryts. Wi-Fi-signaler kan sjunka eller så kan du låta datorn gå i viloläge. Detta är vanligast med bärbara datorer. Du kan stänga locket till den bärbara datorn medan du glömmer att du fortfarande är inloggad via SSH.

SSH designades ursprungligen i en tid innan människor rutinmässigt använde bärbara datorer. SSH fungerar bättre över trådbundna nätverk.

1. Avsluta med en flyktsekvens

Om din SSH-session fryser, försök använda en escape-sekvens. En escape-sekvens låter dig skicka signaler till SSH-klienten istället för fjärrmaskinen. Escape-sekvenser föregås av ett escape-tecken. Som standard på OpenSSH-klienten är det

instagram viewer
tilde (~) karaktär.

För att avsluta SSH-klienten kan du trycka på tilde-tangenten och sedan på period (.) nyckel.

Du kan också ändra escape-karaktären om du vill. Du kan ange ett nytt escape-tecken med -e alternativet på kommandoraden. Du kan också ändra det permanent genom att ställa in EscapeChar alternativ i din .ssh/config filen i din hemkatalog på den lokala maskinen.

2. Använder kill-kommandot

Om det inte fungerar att använda en escape-sekvens kan du försöka döda SSH-klienten. För att hitta process-ID (PID) för din session, skicka ps-kommandot genom grep:

ps aux | grep ssh

Argumentet "aux" till ps betyder "lista alla processer i systemet, oavsett vem den tillhör eller om den har en styrande terminal eller inte."

Om du har flera sessioner kan du välja den frysta eftersom listan visar användarnamnet och adressen på fjärrmaskinen som SSH-sessionerna är inloggade på. När du har hittat PID för din session kan du avsluta den med kommandot kill:

kill [PID]

För bättre SSH-anslutningar, använd Mosh!

Ett bättre sätt att undvika irriterande frusna SSH-sessioner är att använda Mosh. Om anslutningen avbryts låter Mosh dig hålla kontakten. Den skickar alla meddelanden när du återansluter. Det fungerar även när du sätter din maskin i viloläge.

Du kan också använda en terminal multiplexer som GNU Screen eller tmux för att återuppta din SSH-session efter eventuella frånkopplingar, men Mosh och tmux är ännu mer kraftfulla när de används tillsammans.

Så här installerar du Mosh på Debian och Ubuntu:

sudo apt install mosh

Och på Arch Linux:

sudo pacman -S mosh

Om Red Hat-familjen av distros:

sudo dnf install mosh

Nu kan du bli av med SSH-sessioner som har fastnat

SSH-sessioner som inte svarar kan vara frustrerande, men du kan bli av med dem med en escape-sekvens eller kill-kommandot. Mosh är en ännu bättre ersättning som kommer att hålla din anslutning vid liv genom att anslutningen avbryts och systemet vilar.