Sobes.tech
Junior

Was tun, wenn die SSH-Verbindung hängt?

sobes.tech KI

Antwort von AI

  1. Netzwerkverbindung überprüfen: Sicherstellen, dass keine Probleme mit der Internetverbindung oder dem lokalen Netzwerk bestehen. Ping zum Server.
  2. Serverauslastung prüfen: Möglicherweise ist der Server überlastet (CPU, RAM, I/O). Überwachungs-Tools verwenden oder versuchen, über die Konsole des Hypervisors/Anbieters zuzugreifen.
  3. SSH-Dienst neu starten: Auf der Serverseite, wenn Zugriff über andere Mittel (Konsole, anderer SSH-Server) besteht.
    # für systemd-basierte Systeme
    sudo systemctl restart sshd.service
    
    # für SysV init-basierte Systeme
    sudo service ssh restart
    
  4. SSH-Servereinstellungen prüfen: Datei /etc/ssh/sshd_config, auf die Parameter ClientAliveInterval und ClientAliveCountMax achten.
    # /etc/ssh/sshd_config
    ClientAliveInterval 60 # alle 60 Sekunden eine Lebenszeichen-Nachricht senden
    ClientAliveCountMax 3  # 3 verpasste Lebenszeichen zulassen
    
    Nach Änderungen den SSH-Dienst neu starten.
  5. SSH-Clienteinstellungen prüfen: Datei ~/.ssh/config oder Befehlszeilenoptionen (-o). Parameter ServerAliveInterval und ServerAliveCountMax.
    # ~/.ssh/config
    Host dein_server_alias
        Hostname deine_server_ip_oder_hostname
        ServerAliveInterval 60
        ServerAliveCountMax 3
    
    Oder beim Verbinden:
    ssh -o ServerAliveInterval=60 -o ServerAliveCountMax=3 benutzer@deine_server_ip_oder_hostname
    
  6. Firewalls prüfen: Sicherstellen, dass Firewalls (lokal auf Client, Server, Netzwerk) die Verbindung auf Port 22 (oder einen anderen verwendeten SSH-Port) nicht blockieren oder trennen.
  7. TMOUT/IDLE-Timeouts prüfen: Manche Terminals oder Umgebungen haben eigene Einstellungen für Inaktivitäts-Timeouts, die zur Trennung der Verbindung führen können. Variable TMOUT in der Bash-Sitzung auf dem Server prüfen.
    # Variable prüfen
    echo $TMOUT 
    
    # Wert setzen (z.B. 3600 Sekunden)
    export TMOUT=3600 
    
    Dies ist eine temporäre Lösung für die aktuelle Sitzung. Für dauerhafte Änderungen Dateien wie .bashrc, .profile bearbeiten.
  8. Debugging mit -v Option verwenden: Detaillierte Ausgabe des SSH-Verbindungsprozesses.
    ssh -v benutzer@deine_server_ip_oder_hostname
    
  9. SSH-Logs prüfen: Auf der Serverseite /var/log/auth.log oder /var/log/secure (abhängig vom Betriebssystem).
    # Letzte Einträge im Authentifizierungs-Log anzeigen
    sudo tail /var/log/auth.log
    
  10. Alternativen Port oder Protokoll verwenden: Wenn der Standardport 22 irgendwo im Netzwerk blockiert ist, einen anderen Port versuchen, falls auf dem Server konfiguriert. Oder ein anderes Zugriffsprotokoll verwenden (z.B. Konsole).