`ssh [...] sleep 3` (mit sshpass) nie schließen

`ssh [...] sleep 3` (mit sshpass) nie schließen

Ich öffne einen SSH-Tunnel programmgesteuert mit:

sshpass -p "my_password" ssh -fN -o StrictHostKeyChecking=no -o ExitOnForwardFailure=yes remote_user@remote_server.tld -L 13306:127.0.0.1:3306 sleep 3

und funktioniert wie erwartet, schließt aber nicht nach 3 Sekunden Inaktivität.

Ich nehme die SSH-PID und beende die Verbindung explizit, wenn diese beendet wird. Mir ist allerdings die sleepVariante lieber, bei der der Tunnel automatisch geschlossen wird.

Wird die Nutzung sshpassden Tunnel offen halten oder mache ich etwas falsch?

Antwort1

Du benutzt

-f

Fordert ssh auf, kurz vor der Befehlsausführung in den Hintergrund zu gehen. Dies ist nützlich, wenn ssh nach Passwörtern oder Passphrasen fragt, der Benutzer dies aber im Hintergrund möchte. Dies impliziert -n. Die empfohlene Methode zum Starten von X11-Programmen auf einem Remote-Standort ist etwas wie ssh -f host xterm.

Und

-N

Führen Sie keinen Remote-Befehl aus. Dies ist nur zum Weiterleiten von Ports nützlich.

Das geht in den Hintergrund, bevor ein Befehl ausgeführt wird (der unterdrückt wird). Daher bleibt es im Hintergrund. Es sleepwird nie ausgeführt und wartet darauf, beendet zu werden.

verwandte Informationen