SSH Reverse Tunnel

Vor einiger Zeit habe ich auf Golem.de einen Beitrag zum Thema SSH-Reverse-Tunnel veröffentlicht.

Ich habe inzwischen den systemd-Service leicht überarbeitet.

Der neue systemd-Service

[Unit]
Description=AutoSSH service for SSH reverse tunnel to JumpHost
After=network-online.target

[Service]
Restart=always
RestartSec=20
User=alice
Environment="AUTOSSH_GATETIME=0"
ExecStart=/usr/bin/autossh -M 0 -N -R 2222:localhost:22 -i /home/alice/.ssh/id_ed25519 -o ExitOnForwardFailure=yes -o ServerAliveInterval=120 -o ServerAliveCountMax=4 -o TCPKeepAlive=yes alice@JumpHost

[Install]
WantedBy=multi-user.target

Die Änderungen im Detail

  1. In “ExecStart” wird nicht mehr sudo verwendet, um autossh im Kontext des Nutzers “alice” auszuführen. Das ist fehleranfällig und unnötig. Stattdessen habe eine “User”-Direktive eingeführt.
  2. Das Target “network.target” besagt nur, dass der Network-Stack hochgefahren worden ist. Das bedeutet aber nicht, dass das Netzwerk auch tatsächlich funktioniert. Daher habe ich das Ziel auf “network-online.target” geändert.
  3. “RestartSec”-Direktive eingeführt. Ohne sie versucht systemd u.U. viel zu schnell, eine nicht zustandegekommene Verbindung wieder aufzubauen. Ein wenig mehr Geduld führt meiner Erfahrung nach zuverlässiger zum Ziel.

Vielen Dank für die Aufmerksamkeit.


Posted

in

by