Как выйти из зависшего SSH‑сеанса
Кратко: Если SSH‑сеанс перестал реагировать, сначала попробуйте escape‑последовательность (~.), затем — завершить локальный клиент через kill. Для надёжных мобильных/перемещаемых соединений используйте Mosh (работает при смене сети и при режиме сна).
Почему SSH может зависнуть
Чаще всего SSH‑сеанс «зависает» из‑за сетевого разрыва. Wi‑Fi может прерваться, ноутбук может перейти в спящий режим, или вы закрыли крышку, оставив активное соединение. SSH изначально проектировали в эпоху, когда ноутбуки не были повсеместными; он надежнее работает по проводной сети.
Важно: SSH использует TCP‑соединение. При кратких потерях сети TCP ждёт восстановления и может «подвиснуть», пока клиент и сервер не решат, что связь окончательно прервана.
Как завершить зависший SSH — быстрые шаги
1. Завершите через escape‑последовательность

SSH‑клиент поддерживает управляющие (escape) последовательности: они отправляют сигнал клиенту, а не удалённой машине. По умолчанию символ escape — тильда (~). Чтобы принудительно выйти из локального SSH‑клиента, нажмите:
~.Порядок: нажмите тильду, отпустите и затем нажмите точку. Если тильда не реагирует сразу, убедитесь, что она первый вводимый символ на новой строке (нажмите Enter, затем ~.).
Вы можете изменить символ escape временно через опцию командной строки -e, или постоянно в конфиге: в файле ~/.ssh/config установите опцию EscapeChar.
Примечание: escape‑последовательности обрабатываются клиентом, поэтому они работают даже если удалённая сторона «замолчала».
2. Если escape не сработал — убейте процесс клиента

Если клиент не отвечает на escape, завершите процесс на локальной машине. Найдите PID с помощью:
ps aux | grep sshАргумент aux выводит все процессы на системе. В списке вы увидите ваши SSH‑сессии с удалёнными адресами. Определите PID зависшей сессии и выполните:
kill [PID]Если обычный kill не завершает процесс, используйте принудительное завершение:
kill -9 [PID]Осторожно: kill -9 убивает процесс немедленно и не даёт ему корректно очистить ресурсы.
Лучший вариант для ненадёжных соединений — Mosh

Mosh (Mobile Shell) — альтернатива SSH для интерактивных терминалов. Он использует UDP, умеет восстанавливать сессии при смене IP и работает, когда устройство выходит из сна. Mosh хранит локально состояние экрана и синхронизирует изменения, поэтому вы видите интерфейс даже при временной потере сети.
Установка на популярных дистрибутивах:
sudo apt install moshsudo pacman -S moshsudo dnf install moshMosh хорошо сочетается с tmux или screen: tmux сохраняет сессию на сервере, Mosh обеспечивает надёжную сетевую связь.
Важно: Mosh использует UDP и требует открытия соответствующих портов на брандмауэре сервера. Проверяйте сетевые политики и безопасность перед развёртыванием.
Когда escape и kill не подходят — альтернативы
- Используйте tmux или GNU Screen: если сессия запущена внутри мультиплексора, вы сможете переподключиться и продолжить работу после переподключения.
- Настройте autossh для автоматического восстановления туннелей и долгоживущих подключений.
- На серверах с высокой чувствительностью к ресурсам — настройте лучшее управление сессиями и таймауты в
sshd_config(ClientAliveInterval/ClientAliveCountMax).
Мини‑методика быстрого расследования (шаг за шагом)
- Нажмите Enter, затем
~.— попытка выхода через escape. - Если не сработало, откройте локальный терминал (новая вкладка) и выполните
ps aux | grep ssh. - Найдите PID зависшего клиента и выполните
kill [PID]. - При частых обрывах — разверните Mosh или запустите tmux на сервере.
- Проверьте локальный сетевой статус (Wi‑Fi, VPN, переход в спящий режим).
Модель принятия решения
flowchart TD
A[Сессия не отвечает] --> B{Попробовать escape?}
B -- Да --> C[Нажать Enter, затем ~.]
C --> D{Ответил клиент?}
D -- Да --> E[Готово]
D -- Нет --> F[Найти PID: ps aux | grep ssh]
F --> G[kill PID]
G --> H{Клиент завершён?}
H -- Да --> E
H -- Нет --> I[kill -9 PID]
I --> J[Если часто — перейти на Mosh / tmux]
B -- Нет --> FРолевые чек‑листы
- Для пользователей (на ноутбуке): проверьте Wi‑Fi, не закрывайте крышку при активных сессиях, используйте Mosh для мобильной работы.
- Для администраторов: документируйте политики SSH, настройте таймауты в
sshd_config, откройте UDP‑диапазон для Mosh, обучите пользователей tmux. - Для инженеров безопасности: проверьте, какие порты открыты для Mosh, убедитесь в логировании и мониторинге сессий.
Краткий справочник команд (cheat‑sheet)
- Выйти через escape:
~. - Найти процессы ssh:
ps aux | grep ssh - Завершить процесс:
kill [PID]илиkill -9 [PID] - Установить Mosh:
sudo apt install mosh(Debian/Ubuntu)
Критерии приёмки
- После выполнения escape или kill локальный терминал освобождён и можно открыть новое соединение.
- При переходе на Mosh пользователи сохраняют возможность продолжать работу после кратковременных обрывов сети.
- Для сервисов с критичными сессиями реализовано мониторирование и логирование аварийных завершений.
Короткий глоссарий
- SSH — защищённый протокол удалённого доступа по TCP.
- Mosh — протокол/инструмент для мобильных терминальных сессий, использует UDP.
- tmux/screen — терминальные мультиплексоры, позволяют возобновлять сессии на сервере.
Вопросы и ответы
Почему escape не всегда работает?
Escape‑последовательность распознаётся клиентом только в том случае, если тильда была первым символом в строке ввода. Если вы находитесь в режиме ввода у удалённой программы (например, в интерактивном редакторе), сначала нажмите Enter.
Безопасно ли использовать kill -9?
kill -9 принудительно завершит процесс, но не даст ему корректно очистить ресурсы. Используйте его только если обычный kill не помогает.
Нужно ли менять настройки сервера для Mosh?
На сервере должен быть установлен mosh-server (обычно пакет mosh) и открыты UDP‑порты. Проверьте сетевые правила и политики безопасности.
Теперь вы понимаете причины зависания SSH и имеете набор рабочих приёмов: escape‑последовательность для быстрого выхода, kill для принудительного заверщения и Mosh/tmux как устойчивые альтернативы при постоянных проблемах с сетью.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента