Если SSH завис, не стоит сразу закрывать терминал. Есть несколько причин и решений.
🚩Проверить, можно ли выйти без разрыва сессии
Если SSH завис, но сессия не разорвана, попробуйте выйти без закрытия терминала:
~.
Переключение в режим управления SSH
~Ctrl+Z
🚩Проверить соединение с сервером
Если SSH завис, причина может быть в разрыве соединения. Проверьте:
Работает ли пинг до сервера:
ping server_ip
🔹 Открыт ли SSH-порт (22):
nc -zv server_ip 22
🚩Перезапустить SSH-клиент
Если только один SSH-клиент завис, попробуйте:
pkill -9 ssh
или
killall -9 ssh
Затем переподключитесь
ssh user@server_ip
🚩Проверить SSH-сервер
Если сервер доступен, но SSH зависает, войдите через консоль или другой метод (например, VNC, IPMI).
Если SSH не отвечает, перезапустите его:
sudo systemctl restart ssh
или
service ssh restart
🚩Отключить TCP KeepAlive или изменить таймауты
Иногда SSH зависает из-за разрыва соединения на роутере или файрволе.
Добавьте в
~/.ssh/config на клиентеHost *
ServerAliveInterval 60
ServerAliveCountMax 5
Или в
/etc/ssh/sshd_config на сервере ClientAliveInterval 60
ClientAliveCountMax 5
Затем перезапустите SSH
sudo systemctl restart ssh
🚩Убить зависшую SSH-сессию на сервере
Если осталось зависшее подключение, найдите его и завершите:
who # Показывает активные пользователи
ps aux | grep ssh # Показывает процессы SSH
pkill -9 -u username # Завершает все сессии пользователя
Ставь 👍 и забирай 📚 Базу знаний