Tu je to, čo robiť, keď vaše pripojenia SSH v systéme Linux prestanú reagovať a stlačenia kláves 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. Toto je najčastejšie 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 vlnovka (~) charakter.
Ak chcete ukončiť klienta SSH, môžete stlačiť kláves tilda a potom tlačidlo obdobie (.) kľúč.
Ak chcete, môžete zmeniť aj únikový znak. Môžete zadať nový únikový znak pomocou -e možnosť na príkazovom riadku. Môžete ho tiež zmeniť natrvalo nastavením EscapeChar možnosť vo vašom .ssh/config súbor vo vašom domovskom adresári na lokálnom počítači.
2. Použitie 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á „uveďte zoznam všetkých procesov v systéme, bez ohľadu na to, komu patrí alebo či má ovládací terminál alebo nie."
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.