Ako ukončiť nereagujúcu reláciu SSH v systéme Linux
Tu je to, čo robiť, keď vaše pripojenia SSH v systéme Linux prestanú reagovať a stlačenia klávesov nefungujú.
Možno píšete vo vzdialenej relácii SSH a zrazu sa nič nestane. Zdá sa, že systém nereaguje na vaše stlačenia klávesov. čo robíš?
Tu je dôvod, prečo sa to stáva, ako ukončiť nereagujúcu reláciu SSH a prečo by ste mohli chcieť prejsť na Mosh.
Čo spôsobuje zmrazenie relácií SSH?
Hlavným dôvodom zamrznutia relácií SSH je výpadok sieťového pripojenia. Signály Wi-Fi môžu klesnúť alebo môžete nechať počítač prepnúť do režimu spánku. Najčastejšie sa to deje pri prenosných počítačoch. Môžete zavrieť veko notebooku a zabudnúť, že ste stále prihlásení cez SSH.
SSH bol pôvodne navrhnutý v dobe predtým, ako ľudia bežne používali notebooky. SSH funguje lepšie cez káblové siete.
1. Ukončite únikovou sekvenciou
Ak vaša relácia SSH zamrzne, skúste použiť sekvenciu escape. Escape sekvencia vám umožňuje odosielať signály klientovi SSH namiesto vzdialeného počítača. Únikové sekvencie sú označené znakom úniku. V predvolenom nastavení klienta OpenSSH je to znak tilda (~).
Ak chcete ukončiť klienta SSH, môžete stlačiť kláves vlnovky a potom kláves bodka (.).
Ak chcete, môžete zmeniť aj únikový znak. Nový únikový znak môžete zadať pomocou možnosti -e na príkazovom riadku. Môžete ho tiež zmeniť natrvalo nastavením možnosti EscapeChar v súbore .ssh/config vo vašom domovskom adresári na lokálnom počítači.
2. Pomocou príkazu kill
Ak použitie escape sekvencie nefunguje, môžete skúsiť zabiť klienta SSH. Ak chcete nájsť ID procesu (PID) vašej relácie, použite príkaz ps cez grep:
ps aux | grep ssh
Argument "aux" pre ps znamená "zoznam všetkých procesov v systéme bez ohľadu na to, komu patria alebo či má alebo nemá riadiaci terminál."
Ak máte viacero relácií, môžete si vybrať zmrazenú, pretože vo výpise sa zobrazí používateľské meno a adresa na vzdialenom počítači, na ktorom sú relácie SSH prihlásené. Keď nájdete PID svojej relácie, môžete ju ukončiť príkazom kill:
kill [PID]
Pre lepšie pripojenia SSH použite Mosh!
Lepším spôsobom, ako sa vyhnúť nepríjemným zmrazeným reláciám SSH, je použiť Mosh. Ak sa pripojenie preruší, Mosh vám umožní zostať v spojení. Po opätovnom pripojení odošle všetky správy. Funguje to aj vtedy, keď zariadenie uspíte.
Môžete tiež použiť terminálový multiplexer ako GNU Screen alebo tmux na obnovenie relácie SSH po akomkoľvek odpojení, ale Mosh a tmux sú ešte výkonnejšie, keď sa používajú spolu.
Inštalácia Mosh na Debian a Ubuntu:
sudo apt install mosh
A na Arch Linuxe:
sudo pacman -S mosh
O rodine distribúcií Red Hat:
sudo dnf install mosh
Teraz sa môžete zbaviť zaseknutých relácií SSH
Nereagujúce relácie SSH môžu byť frustrujúce, ale môžete sa ich zbaviť pomocou únikovej sekvencie alebo príkazu kill. Mosh je ešte lepšia náhrada, ktorá udrží vaše pripojenie nažive prostredníctvom výpadkov pripojenia a spánku systému.