Itt van a teendő, ha az SSH-kapcsolatok Linuxon nem válaszolnak, és a billentyűleütések nem működnek.
Lehet, hogy egy távoli SSH-munkamenetet ír be, és hirtelen nem történik semmi. Úgy tűnik, hogy a rendszer nem reagál a billentyűleütésekre. Mit csinálsz?
Íme, miért történik ez, hogyan lehet kilépni egy nem reagáló SSH-munkamenetből, és miért érdemes Mosh-ra váltani.
Mi okozza az SSH-munkamenetek lefagyását?
Az SSH-munkamenetek lefagyásának fő oka a hálózati kapcsolat megszakadása. A Wi-Fi jelek csökkenhetnek, vagy hagyhatja alvó állapotba a számítógépet. Ez a leggyakoribb a laptopoknál. Lezárhatja a laptop fedelét, miközben elfelejti, hogy még mindig bejelentkezett SSH-n keresztül.
Az SSH-t eredetileg egy olyan korszakban tervezték, amikor az emberek rutinszerűen használtak laptopokat. Az SSH jobban működik vezetékes hálózatokon.
1. Befejezés egy szökési szekvenciával
Ha az SSH-munkamenet lefagy, próbálkozzon egy escape szekvencia használatával. Az escape szekvencia lehetővé teszi, hogy jeleket küldjön az SSH-ügyfélnek a távoli gép helyett. Az Escape sorozatokat egy escape karakter előzi meg. Az OpenSSH kliensen alapértelmezés szerint a
hullám (~) karakter.Az SSH kliensből való kilépéshez nyomja meg a tilde billentyűt, majd a időszak (.) kulcs.
Az escape karaktert is módosíthatja, ha akarja. Megadhat egy új escape karaktert a -e opciót a parancssorban. A beállítással véglegesen is módosíthatja EscapeChar opció az Önben .ssh/config fájlt a helyi gép saját könyvtárában.
2. A kill parancs használata
Ha a escape szekvencia használata nem működik, megpróbálhatja megölni az SSH-klienst. A munkamenet folyamatazonosítójának (PID) megkereséséhez adja ki a ps parancsot a grep segítségével:
ps aux | grep ssh
A ps "aux" argumentuma azt jelenti, hogy "felsorol minden folyamatot a rendszeren, függetlenül attól, hogy kihez tartozik, vagy hogy van-e vezérlő terminál vagy nem."
Ha több munkamenete van, kiválaszthatja a lefagyottat, mert a listán megjelenik a felhasználónév és a cím azon a távoli gépen, amelyre az SSH-munkamenetek bejelentkeztek. Miután megtalálta a munkamenet PID-jét, leállíthatja azt a kill paranccsal:
kill [PID]
A jobb SSH-kapcsolatok érdekében használja a Mosh!
A lefagyott SSH-munkamenetek bosszantó elkerülésének jobb módja a használat Mosh. Ha a kapcsolat megszakad, a Mosh lehetővé teszi, hogy kapcsolatban maradjon. Minden üzenetet elküld, amikor újracsatlakozik. Akkor is működik, ha alvó állapotba helyezi a gépet.
Használhat terminál multiplexert, például a GNU Screent vagy a tmux-ot az SSH-munkamenet folytatásához bármilyen leválasztás után, de A Mosh és a tmux még erősebb, ha együtt használják őket.
A Mosh telepítése Debianra és Ubuntura:
sudo apt install mosh
És Arch Linuxon:
sudo pacman -S mosh
A Red Hat disztribúciók családjáról:
sudo dnf install mosh
Most megszabadulhat az elakadt SSH-munkamenetektől
A nem reagáló SSH-munkamenetek frusztrálóak lehetnek, de egy escape szekvenciával vagy a kill paranccsal megszabadulhat tőlük. A Mosh egy még jobb csere, amely életben tartja a kapcsolatot a kapcsolat megszakadásával és a rendszer elalvásával.