Sobes.tech
Junior

Какво да правите, ако SSH връзката замръзне?

sobes.tech AI

Отговор от AI

  1. Проверете мрежовата връзка: Уверете се, че няма проблеми с интернет връзката или локалната мрежа. Пинг към сървъра.
  2. Проверете натоварването на сървъра: Възможно е сървърът да е претоварен (CPU, RAM, I/O). Използвайте инструменти за мониторинг или опитайте да получите достъп чрез конзолата на хипервизора/оператора.
  3. Рестартирайте SSH услугата: От страната на сървъра, ако имате достъп по други начини (конзола, друг SSH сървър).
    # за системи базирани на systemd
    sudo systemctl restart sshd.service
    
    # за системи базирани на SysV init
    sudo service ssh restart
    
  4. Проверете настройките на SSH сървъра: Файл /etc/ssh/sshd_config, обърнете внимание на параметрите ClientAliveInterval и ClientAliveCountMax.
    # /etc/ssh/sshd_config
    ClientAliveInterval 60 # изпращане на alive съобщение на всеки 60 секунди
    ClientAliveCountMax 3  # позволява 3 пропуснати alive съобщения
    
    След промяна на настройките, трябва да рестартирате SSH услугата.
  5. Проверете настройките на SSH клиента: Файл ~/.ssh/config или командни опции (-o). Параметри ServerAliveInterval и ServerAliveCountMax.
    # ~/.ssh/config
    Host ваш_server_alias
        Hostname ваш_server_ip_or_hostname
        ServerAliveInterval 60
        ServerAliveCountMax 3
    
    Или при свързване:
    ssh -o ServerAliveInterval=60 -o ServerAliveCountMax=3 user@ваш_server_ip_or_hostname
    
  6. Проверете фаерволите: Уверете се, че фаерволите (локални на клиента, сървъра, мрежови) не блокират или прекъсват връзката по порт 22 (или друг използван порт за SSH).
  7. Проверете TMOUT/IDLE таймаутите: Някои терминали или среди имат свои настройки за таймаут на неактивност, които могат да водят до прекъсване на връзката. Проверете променливата TMOUT в bash сесията на сървъра.
    # проверете променливата
    echo $TMOUT 
    
    # задайте стойност (например 3600 секунди)
    export TMOUT=3600 
    
    Това е временно решение за текущата сесия. За постоянна промяна редактирайте файловете .bashrc, .profile и др.
  8. Използвайте опцията -v за отстраняване на грешки: Детайли за процеса на свързване от SSH клиента.
    ssh -v user@ваш_server_ip_or_hostname
    
  9. Проверете логовете на SSH: От страната на сървъра /var/log/auth.log или /var/log/secure (зависи от ОС).
    # вижте последните записи в лог файла за автентикация
    sudo tail /var/log/auth.log
    
  10. Използвайте алтернативен порт или протокол: Ако стандартният порт 22 е блокиран някъде в мрежата, опитайте да използвате друг порт, ако е настроен на сървъра. Или използвайте друг протокол за достъп, ако е възможно (например конзола).