Her er hvad du skal gøre, når dine SSH-forbindelser på Linux ikke reagerer, og tastetrykkene ikke virker.
Du skriver muligvis i en ekstern SSH-session, og pludselig sker der intet. Systemet ser ikke ud til at reagere på dine tastetryk. Hvad laver du?
Her er hvorfor det sker, hvordan du afslutter en SSH-session, der ikke reagerer, og hvorfor du måske ønsker at skifte til Mosh.
Hvad får SSH-sessioner til at fryse?
Hovedårsagen til, at SSH-sessioner fryser, er, at netværksforbindelsen falder. Wi-Fi-signaler kan falde, eller du kan lade din computer gå på vågeblus. Dette er mest almindeligt med bærbare computere. Du kan lukke den bærbare computers låg, mens du glemmer, at du stadig er logget på via SSH.
SSH blev oprindeligt designet i en æra før folk rutinemæssigt brugte bærbare computere. SSH fungerer bedre over kablede netværk.
1. Afslut med en flugtsekvens
Hvis din SSH-session fryser, så prøv at bruge en escape-sekvens. En escape-sekvens lader dig sende signaler til SSH-klienten i stedet for den eksterne maskine. Escape-sekvenser indledes med et escape-tegn. Som standard på OpenSSH-klienten er det
tilde (~) Karakter.For at afslutte SSH-klienten kan du trykke på tilde-tasten og derefter på periode (.) nøgle.
Du kan også ændre escape-karakteren, hvis du vil. Du kan angive et nyt escape-tegn med -e mulighed på kommandolinjen. Du kan også ændre det permanent ved at indstille EscapeChar mulighed i din .ssh/config fil i din hjemmemappe på den lokale maskine.
2. Brug af kill-kommandoen
Hvis brugen af en escape-sekvens ikke virker, kan du prøve at dræbe SSH-klienten. For at finde proces-id'et (PID) for din session, skal du sende ps-kommandoen gennem grep:
ps aux | grep ssh
"aux"-argumentet til ps betyder "liste hver proces på systemet, uanset hvem den tilhører, eller om den har en styrende terminal eller ikke."
Hvis du har flere sessioner, kan du vælge den frosne, fordi listen vil vise brugernavnet og adressen på den eksterne maskine, som SSH-sessionerne er logget ind på. Når du har fundet din sessions PID, kan du afslutte den med kill-kommandoen:
kill [PID]
For bedre SSH-forbindelser, brug Mosh!
En bedre måde at undgå irriterende frosne SSH-sessioner er at bruge Mosh. Hvis forbindelsen falder, vil Mosh lade dig forblive forbundet. Den sender alle beskeder, når du genopretter forbindelsen. Det virker også, når du sætter din maskine på vågeblus.
Du kan også bruge en terminal multiplexer som GNU Screen eller tmux til at genoptage din SSH-session efter enhver afbrydelse, men Mosh og tmux er endnu mere kraftfulde, når de bruges sammen.
Sådan installeres Mosh på Debian og Ubuntu:
sudo apt install mosh
Og på Arch Linux:
sudo pacman -S mosh
Om Red Hat-familien af distroer:
sudo dnf install mosh
Nu kan du slippe af med fastlåste SSH-sessioner
SSH-sessioner, der ikke reagerer, kan være frustrerende, men du kan slippe af med dem med en escape-sekvens eller kill-kommandoen. Mosh er en endnu bedre erstatning, der vil holde din forbindelse i live gennem forbindelsesfald og systemdvale.