GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Ssh – Wie funktioniert TCP-Keepalive in Ssh?

Ich versuche, ein Shell-Skript zu codieren, das eine SSH-Verbindung verwendet, um „Heartbeats“ auszuführen. Ich möchte die Client- und Serverseite dieser Verbindung nach einem bestimmten Timeout (nachdem die Verbindung getrennt wurde) beenden.

Was ich bisher gefunden habe:

  • TCPKeepAlive ja/nein für ssh und sshd
  • ClientAliveCountMax für sshd
  • ClientAliveInterval für sshd
  • ServerAliveCountMax für ssh
  • ServerAliveInterval für ssh

Um „ClientAliveCountMax“ zu ändern, müsste ich die sshd_config auf jedem Zielcomputer ändern (diese Option ist standardmäßig deaktiviert).

Meine Frage ist also – kann ich „TCPKeepAlive“ auch für meine Zwecke verwenden (ohne irgendetwas anderes auf den Quell-/Zielmaschinen zu ändern)?

Zielbetriebssystem ist SLES11 SP2 – aber ich denke nicht, dass das hier relevant ist.

Akzeptierte Antwort:

Wahrscheinlich möchten Sie dafür die ServerAlive-Einstellungen verwenden. Sie erfordern keine Konfiguration auf dem Server und können auf Wunsch in der Befehlszeile eingestellt werden.

ssh -o ServerAliveInterval=5 -o ServerAliveCountMax=1 $HOST

Dadurch wird alle 5 Sekunden eine ssh-Keepalive-Nachricht gesendet, und wenn es an der Zeit ist, eine weitere Keepalive-Nachricht zu senden, aber keine Antwort auf die letzte empfangen wurde, wird die Verbindung beendet.

Der entscheidende Unterschied zwischen ServerAliveInterval und TCPKeepAlive ist die Ebene, auf der sie operieren.

  • TCPKeepAlive arbeitet auf der TCP-Schicht. Es sendet ein leeres TCP-ACK-Paket. Firewalls können so konfiguriert werden, dass sie diese Pakete ignorieren. Wenn Sie also eine Firewall passieren, die inaktive Verbindungen unterbricht, halten diese die Verbindung möglicherweise nicht aufrecht.
  • ServerAliveInterval arbeitet auf der ssh-Schicht. Es sendet tatsächlich Daten über ssh, sodass das TCP-Paket verschlüsselte Daten enthält und eine Firewall nicht erkennen kann, ob es sich um ein Keepalive- oder ein legitimes Paket handelt, daher funktionieren diese besser.

Linux
  1. Was ist ein Makefile und wie funktioniert es?

  2. Was ist NGINX? Wie funktioniert es?

  3. Was ist ein Webserver und wie funktioniert ein Webserver?

  4. Wie funktioniert Rm? Was macht Rm?

  5. Wie funktioniert sig_atomic_t eigentlich?

Wie funktioniert Git?

Wie funktioniert SFTP?

Ssh – Wie funktioniert Reverse-SSH-Tunneling?

Linux – Wie funktioniert die Anzeige von Linux?

Wie funktioniert Swap-Speicher in Linux?

Wie funktioniert die Anzeige von Linux?