Her er hva du skal gjøre når SSH-tilkoblingene dine på Linux ikke reagerer og tastetrykkene ikke fungerer.
Du skriver kanskje i en ekstern SSH-økt, og plutselig skjer ingenting. Systemet ser ikke ut til å reagere på tastetrykkene dine. Hva gjør du?
Her er hvorfor det skjer, hvordan du avslutter en SSH-økt som ikke reagerer, og hvorfor du kanskje vil bytte til Mosh.
Hva får SSH-økter til å fryse?
Hovedårsaken til at SSH-økter fryser er at nettverkstilkoblingen faller. Wi-Fi-signaler kan falle, eller du kan la datamaskinen gå i dvale. Dette er mest vanlig med bærbare datamaskiner. Du kan lukke lokket på den bærbare datamaskinen mens du glemmer at du fortsatt er pålogget over SSH.
SSH ble opprinnelig designet i en tid før folk rutinemessig brukte bærbare datamaskiner. SSH fungerer bedre over kablede nettverk.
1. Avslutt med en escape-sekvens
Hvis SSH-økten din fryser, prøv å bruke en escape-sekvens. En escape-sekvens lar deg sende signaler til SSH-klienten i stedet for den eksterne maskinen. Escape-sekvenser innledes med et escape-tegn. Som standard på OpenSSH-klienten er det
tilde (~) karakter.For å avslutte SSH-klienten kan du trykke på tilde-tasten og deretter periode (.) nøkkel.
Du kan også endre escape-karakteren hvis du vil. Du kan spesifisere et nytt escape-tegn med -e alternativet på kommandolinjen. Du kan også endre den permanent ved å stille inn EscapeChar alternativ i din .ssh/config fil i hjemmekatalogen på den lokale maskinen.
2. Bruke kill-kommandoen
Hvis bruk av en escape-sekvens ikke fungerer, kan du prøve å drepe SSH-klienten. For å finne prosess-IDen (PID) for økten din, kan du sende ps-kommandoen gjennom grep:
ps aux | grep ssh
"aux"-argumentet til ps betyr "liste opp hver prosess på systemet, uansett hvem den tilhører eller om den har en kontrollerende terminal eller ikke."
Hvis du har flere økter, kan du velge den frosne, fordi oppføringen vil vise brukernavnet og adressen på den eksterne maskinen SSH-øktene er logget på. Når du har funnet PID-en til økten din, kan du avslutte den med kill-kommandoen:
kill [PID]
For bedre SSH-tilkoblinger, bruk Mosh!
En bedre måte å unngå irriterende frosne SSH-økter er å bruke Mosh. Hvis tilkoblingen faller, vil Mosh la deg holde deg tilkoblet. Den vil sende alle meldinger når du kobler til igjen. Det fungerer også når du setter maskinen i dvale.
Du kan også bruke en terminal multiplekser som GNU Screen eller tmux for å gjenoppta SSH-økten etter eventuelle frakoblinger, men Mosh og tmux er enda kraftigere når de brukes sammen.
For å installere Mosh på Debian og Ubuntu:
sudo apt install mosh
Og på Arch Linux:
sudo pacman -S mosh
Om Red Hat-familien av distroer:
sudo dnf install mosh
Nå kan du bli kvitt SSH-økter som sitter fast
SSH-økter som ikke reagerer kan være frustrerende, men du kan bli kvitt dem med en escape-sekvens eller kill-kommandoen. Mosh er en enda bedre erstatning som vil holde forbindelsen din i live gjennom tilkoblingsfall og systemdvaler.