`ssh [...] sleep 3` (con sshpass) no se cierra nunca

`ssh [...] sleep 3` (con sshpass) no se cierra nunca

Abro un túnel SSH mediante programación, con:

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

y funciona como se esperaba, pero no se cierra después de 3 segundos de inactividad.

Tomo el PID SSH y lo mato explícitamente cuando finaliza la conexión; pero prefiero la sleepversión que puede cerrar el túnel automáticamente.

¿ El uso sshpassmantiene el túnel abierto o estoy haciendo algo mal?

Respuesta1

Tu estas usando

-f

Solicita que ssh pase a segundo plano justo antes de la ejecución del comando. Esto es útil si ssh va a solicitar contraseñas o frases de contraseña, pero el usuario las quiere en segundo plano. Esto implica -n. La forma recomendada de iniciar programas X11 en un sitio remoto es con algo como ssh -f host xterm.

y

-N

No ejecute un comando remoto. Esto es útil sólo para reenviar puertos.

Que pasa a segundo plano antes de ejecutar un comando (que se suprime). Por tanto queda en un segundo plano. Nunca se sleepejecuta y espera a que lo eliminen.

información relacionada