Jak wyjść z nieodpowiadającej sesji SSH w systemie Linux

Jak wyjść z nieodpowiadającej sesji SSH w systemie Linux
Czytelnicy tacy jak Ty pomagają wspierać MUO. Kiedy dokonujesz zakupu za pomocą linków na naszej stronie, możemy otrzymać prowizję partnerską. Czytaj więcej.

Być może piszesz w zdalnej sesji SSH i nagle nic się nie dzieje. Wygląda na to, że system nie reaguje na naciśnięcia klawiszy. Co robisz?





MUO Film dnia PRZEWIŃ, ABY KONTYNUOWAĆ TREŚĆ

Oto dlaczego tak się dzieje, jak zakończyć nieodpowiadającą sesję SSH i dlaczego warto przejść na Mosh.





Co powoduje zawieszanie się sesji SSH?

Głównym powodem zawieszania się sesji SSH jest zrywanie połączenia sieciowego. Sygnały Wi-Fi mogą spaść lub możesz pozwolić komputerowi przejść w stan uśpienia. Dzieje się tak najczęściej w przypadku laptopów. Możesz zamknąć pokrywę laptopa, zapominając, że nadal jesteś zalogowany przez SSH.





Protokół SSH został pierwotnie zaprojektowany w czasach, gdy ludzie nie korzystali rutynowo z laptopów. SSH działa lepiej w sieciach przewodowych.

1. Zakończ sekwencją ucieczki

  Zakończenie sesji SSH za pomocą sekwencji ucieczki

Jeśli sesja SSH zawiesza się, spróbuj użyć sekwencji ucieczki. Sekwencja ucieczki umożliwia wysyłanie sygnałów do klienta SSH zamiast do komputera zdalnego. Sekwencje ucieczki są poprzedzone znakiem ucieczki. Domyślnie w kliencie OpenSSH jest to plik tylda (~) postać.

Aby zamknąć klienta SSH, możesz nacisnąć klawisz tyldy, a następnie okres (.) klucz.

Jeśli chcesz, możesz także zmienić znak ucieczki. Możesz określić nowy znak ucieczki za pomocą -To jest opcję w wierszu poleceń. Można to również zmienić na stałe, ustawiając opcję UcieczkaChar opcja w twoim .ssh/config plik w katalogu domowym na komputerze lokalnym.

2. Korzystanie z polecenia zabicia

  Wyszukiwanie sesji SSH za pomocą ps i grep

Jeśli użycie sekwencji ucieczki nie działa, możesz spróbować zabić klienta SSH. Aby znaleźć identyfikator procesu (PID) sesji, wprowadź polecenie ps przez grep:

 ps aux | grep ssh

Argument „aux” w ps oznacza „listę wszystkich procesów w systemie, bez względu na to, do kogo należy i czy ma terminal sterujący albo nie.'

Jeśli masz wiele sesji, możesz wybrać zamrożoną, ponieważ na liście będzie widoczna nazwa użytkownika i adres na zdalnym komputerze, do którego zalogowane są sesje SSH. Po znalezieniu identyfikatora PID sesji możesz ją zakończyć za pomocą polecenia kill:

 kill [PID]

Aby uzyskać lepsze połączenia SSH, użyj Mosh!

  Zdalna sesja Vima w Mosh z rozłączoną siecią

Lepszym sposobem na uniknięcie irytujących zamrożonych sesji SSH jest użycie Mosz . Jeśli połączenie zostanie zerwane, Mosh pozwoli Ci pozostać w kontakcie. Po ponownym połączeniu wyśle ​​wszelkie wiadomości. Działa również po uśpieniu maszyny.

Możesz także użyć multipleksera terminala, takiego jak GNU Screen lub tmux, aby wznowić sesję SSH po rozłączeniu, ale Mosh i tmux są jeszcze potężniejsze, gdy są używane razem .

Aby zainstalować Mosh na Debianie i Ubuntu:

 sudo apt install mosh

Oraz na Arch Linuxie:

 sudo pacman -S mosh

W rodzinie dystrybucji Red Hat:

 sudo dnf install mosh

Teraz możesz pozbyć się zablokowanych sesji SSH

Sesje SSH, które nie odpowiadają, mogą być frustrujące, ale można się ich pozbyć za pomocą sekwencji ucieczki lub polecenia kill. Mosh to jeszcze lepszy zamiennik, który utrzyma połączenie przy zerwaniu połączenia i uśpieniu systemu.

jak podłączyć dysk twardy do laptopa