Sobes.tech
Junior

Co dělat, když se SSH připojení zasekne?

sobes.tech AI

Odpověď od AI

  1. Zkontrolujte síťové připojení: Ujistěte se, že nejsou žádné problémy s internetovým připojením nebo místní sítí. Ping na server.
  2. Zkontrolujte zatížení serveru: Možná je server přetížený (CPU, RAM, I/O). Použijte monitorovací nástroje nebo zkuste získat přístup přes konzoli hypervizoru/provozovatele.
  3. Restartujte SSH službu: Na straně serveru, pokud máte přístup jinými způsoby (konzole, jiný SSH server).
    # pro systémy založené na systemd
    sudo systemctl restart sshd.service
    
    # pro systémy založené na SysV init
    sudo service ssh restart
    
  4. Zkontrolujte nastavení SSH serveru: Soubor /etc/ssh/sshd_config, věnujte pozornost parametrům ClientAliveInterval a ClientAliveCountMax.
    # /etc/ssh/sshd_config
    ClientAliveInterval 60 # odesílání živé zprávy každých 60 sekund
    ClientAliveCountMax 3  # povolení 3 zmeškaných živých zpráv
    
    Po změně nastavení je třeba restartovat SSH službu.
  5. Zkontrolujte nastavení SSH klienta: Soubor ~/.ssh/config nebo příkazové volby (-o). Parametry ServerAliveInterval a ServerAliveCountMax.
    # ~/.ssh/config
    Host váš_server_alias
        Hostname váš_server_ip_nebo_hostname
        ServerAliveInterval 60
        ServerAliveCountMax 3
    
    Nebo při připojení:
    ssh -o ServerAliveInterval=60 -o ServerAliveCountMax=3 user@váš_server_ip_nebo_hostname
    
  6. Zkontrolujte firewally: Ujistěte se, že firewally (místní na klientovi, serveru, síťové) neblokují nebo neukončují spojení na portu 22 (nebo jiném používaném portu SSH).
  7. Zkontrolujte TMOUT/IDLE timeouty: Některé terminály nebo prostředí mají své nastavení timeoutu neaktivity, které mohou vést k přerušení spojení. Zkontrolujte proměnnou TMOUT v bash relaci na serveru.
    # zkontrolujte proměnnou
    echo $TMOUT 
    
    # nastavte hodnotu (například 3600 sekund)
    export TMOUT=3600 
    
    Toto je dočasné řešení pro aktuální relaci. Pro trvalou změnu upravte soubory .bashrc, .profile atd.
  8. Použijte volbu -v pro ladění: Detaily procesu připojení SSH klientem.
    ssh -v user@váš_server_ip_nebo_hostname
    
  9. Zkontrolujte SSH logy: Na straně serveru /var/log/auth.log nebo /var/log/secure (závisí na OS).
    # podívejte se na poslední záznamy v logu autorizace
    sudo tail /var/log/auth.log
    
  10. Použijte alternativní port nebo protokol: Pokud je standardní port 22 blokován někde v síti, zkuste použít jiný port, pokud je na serveru nakonfigurován. Nebo použijte jiný přístupový protokol, pokud je to možné (například konzoli).