Как да излезете от неотговаряща SSH сесия на Linux

Как да излезете от неотговаряща SSH сесия на Linux
Читатели като вас помагат в подкрепа на MUO. Когато правите покупка чрез връзки на нашия сайт, ние може да спечелим комисионна за партньор. Прочетете още.

Може да пишете в отдалечена SSH сесия и изведнъж нищо не се случва. Системата изглежда не реагира на вашите натискания на клавиши. Какво правиш?





MUO Видео на деня ПРЕВЪРТЕТЕ, ЗА ДА ПРОДЪЛЖИТЕ СЪС СЪДЪРЖАНИЕТО

Ето защо се случва това, как да излезете от неотговаряща SSH сесия и защо може да искате да преминете към Mosh.





Какво кара SSH сесиите да замръзват?

Основната причина, поради която SSH сесиите блокират, е прекъсването на мрежовата връзка. Wi-Fi сигналите могат да отпаднат или може да оставите компютъра си да заспи. Това е най-често при лаптопите. Може да затворите капака на лаптопа, като забравите, че все още сте влезли през SSH.





защо видео картите са толкова скъпи сега

SSH първоначално е проектиран в епоха, преди хората да използват рутинно лаптопи. SSH работи по-добре в кабелни мрежи.

1. Прекратете с Escape Sequence

  Излизане от SSH сесия с изходна последователност

Ако вашата SSH сесия замръзне, опитайте да използвате последователност за изход. Escape последователността ви позволява да изпращате сигнали до SSH клиента вместо отдалечената машина. Escape последователностите се предхождат от екраниращ знак. По подразбиране на OpenSSH клиента това е тилда (~) характер.

За да излезете от SSH клиента, можете да натиснете клавиша тилда и след това Период (.) ключ.

Можете също да промените символа за изход, ако желаете. Можете да посочите нов екраниращ знак с -То е опция в командния ред. Можете също да го промените за постоянно, като зададете EscapeChar опция във вашия .ssh/config файл във вашата домашна директория на локалната машина.

2. Използване на командата kill

  Търсене на SSH сесия с ps и grep

Ако използването на екранираща последователност не работи, можете да опитате да убиете SSH клиента. За да намерите ID на процеса (PID) на вашата сесия, прекарайте командата ps чрез grep:

 ps aux | grep ssh

Аргументът 'aux' на ps означава 'изброй всеки процес в системата, без значение на кого принадлежи или дали има контролен терминал или не.'

Ако имате няколко сесии, можете да изберете замразената, защото списъкът ще показва потребителското име и адреса на отдалечената машина, в която са влезли SSH сесиите. След като намерите PID на вашата сесия, можете да я прекратите с командата kill:

 kill [PID]

За по-добри SSH връзки използвайте Mosh!

  Отдалечена Vim сесия под Mosh с прекъсната връзка с мрежата

По-добър начин да избегнете досадните замразени SSH сесии е да използвате Мош . Ако връзката прекъсне, Mosh ще ви позволи да останете свързани. Той ще изпрати всички съобщения, когато се свържете отново. Работи и когато поставите машината си в режим на заспиване.

Можете също да използвате терминален мултиплексор като GNU Screen или tmux, за да възобновите вашата SSH сесия след всяко прекъсване на връзката, но Mosh и tmux са още по-мощни, когато се използват заедно .

За да инсталирате Mosh на Debian и Ubuntu:

 sudo apt install mosh

И на Arch Linux:

 sudo pacman -S mosh

За семейството дистрибуции на Red Hat:

 sudo dnf install mosh

Сега можете да се отървете от блокираните SSH сесии

Неотговарящите SSH сесии могат да бъдат разочароващи, но можете да се отървете от тях с изходна последователност или командата kill. Mosh е още по-добър заместител, който ще поддържа връзката ви жива чрез прекъсване на връзката и заспиване на системата.

какъв е фондът за създатели на tiktok