Forhindre og Genoprette SSH-forbindelser: Undgå Frysning og Genvind Kontrol

Hvordan kan terminalen forhindres i at fryse ved SSH-forbindelser, der er timed out, og hvordan kan man genvinde kontrollen over terminalen i sådanne tilfælde?

For at forhindre terminalen i at fryse ved SSH-forbindelser, der er timed out, kan du konfigurere KeepAlive-indstillinger i både klient- og serverkonfigurationsfilerne. For at genvinde kontrollen over terminalen kan du bruge escape-sekvenser som `~.` eller `~^Z`, eller anvende værktøjer som `screen` eller `tmux`.

Hvordan kan terminalen forhindres i at fryse ved SSH-forbindelser, der er timed out, og hvordan kan man genvinde kontrollen over terminalen i sådanne tilfælde?

For at forhindre terminalen i at fryse ved SSH-forbindelser, der er timed out, og for at genvinde kontrollen over terminalen, kan du følge disse trin:

Forhindre terminalen i at fryse

  • Konfigurer KeepAlive: Tilføj følgende linjer til din SSH-klientkonfigurationsfil (~/.ssh/config):
    Host *
      ServerAliveInterval 60
      ServerAliveCountMax 5
        
    • ServerAliveInterval 60: Sender en pakke til serveren hvert 60. sekund for at holde forbindelsen aktiv.
    • ServerAliveCountMax 5: Hvis der ikke modtages svar efter 5 forsøg, lukkes forbindelsen.
  • Justér serverens timeout-indstillinger: Tilføj eller rediger følgende linjer i serverens SSH-konfigurationsfil (/etc/ssh/sshd_config):
    ClientAliveInterval 60
    ClientAliveCountMax 5
        
    • ClientAliveInterval 60: Serveren sender en pakke til klienten hvert 60. sekund for at sikre, at forbindelsen er aktiv.
    • ClientAliveCountMax 5: Hvis der ikke modtages svar efter 5 forsøg, lukkes forbindelsen.

Genoprette kontrol over terminalen

  • Brug ~. escape-sekvens: Hvis din SSH-session fryser, kan du trykke på Enter og derefter ~. for at lukke SSH-forbindelsen.
  • Brug ~^Z escape-sekvens: Tryk på Enter og derefter ~^Z (hold Ctrl og tryk Z) for at suspendere SSH-sessionen og vende tilbage til din lokale shell. Du kan derefter dræbe SSH-processen med kill-kommandoen.
  • Brug screen eller tmux: Start en screen eller tmux session før du opretter SSH-forbindelsen. Hvis forbindelsen fryser, kan du genoprette sessionen ved at logge ind igen og vedhæfte den eksisterende screen eller tmux session.

Ved at følge disse trin kan du både forhindre, at din terminal fryser ved SSH-forbindelser, der er timed out, og genvinde kontrollen over terminalen, hvis det sker.