Ето какво да направите, когато вашите SSH връзки на Linux престанат да реагират и натисканията на клавишите не работят.

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

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

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

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

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

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

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

instagram viewer
тилда (~) характер.

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

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

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

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

ps aux | grep ssh

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

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

kill [PID]

За по-добри SSH връзки използвайте 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 е още по-добър заместител, който ще поддържа връзката ви жива чрез прекъсване на връзката и заспиване на системата.