Sobes.tech
Junior

Šta učiniti ako se SSH veza zamrzne?

sobes.tech АИ

Одговор од АИ

  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 # слање живе поруке сваких 60 секунди
    ClientAliveCountMax 3  # дозвољава 3 пропуштене живе поруке
    
    Након измене подешавања, потребно је поново покренути 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 timeout-ове: Неки терминали или окружења имају своја подешавања за timeout неактивности, што може довести до прекида везе. Проверите променљиву 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 блокиран негде у мрежи, покушајте да користите други порт, ако је на серверу конфигурисан. Или користите други протокол за приступ, ако је могуће (нпр. конзола).