Túnel SSH en segundo plano


17

Tengo un proceso que espera que una conexión de túnel ssh se ejecute correctamente y he estado usando el siguiente comando:

ssh -L localhost:3306:127.0.0.1:3306 username@<mysql-machine-ip-address> -N &

Lo ejecuté con éxito durante 8 meses, recientemente nuestro proveedor de alojamiento tuvo que hacer cambios de hardware para actualizar nuestra máquina, y actualicé nuestra máquina con un nuevo núcleo para Ubuntu. Pasó de 4.8.3-x86_64-linode76 a 4.8.6-x86_64-linode78.

Después de un montón de problemas, hemos tenido que actualizar el comando a esto:

ssh -L localhost:3306:127.0.0.1:3306 username@<mysql-machine-ip-address> -fN

Al investigar la documentación de ssh, el parámetro -f

Solicita a ssh que vaya al fondo justo antes de la ejecución del comando. Esto es útil si ssh va a pedir contraseñas o frases de contraseña, pero el usuario lo 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.

Al investigar el comando bash para "&"

Coloque un proceso en segundo plano (consulte Multitarea en "Uso intermedio de> El sistema operativo UNIX").

¿Hay fundamentalmente alguna diferencia en estos 2 comandos?

Respuestas:


22

Sí hay. ssh &se ejecuta sshen segundo plano desde el principio. ssh -fcomienza sshen primer plano, lo que le permite solicitar contraseñas, etc., y solo después se sshpone en segundo plano justo antes de ejecutar el comando solicitado.


¿Tiene alguna idea de por qué con el nuevo servidor me vería obligado a usar el ssh -f en lugar del ssh &. Además de eso, parece que ssh -f es un mejor enfoque, ¿estaría de acuerdo con eso?
development4fun2011

¿Quizás el nuevo sistema tiene un cliente ssh más nuevo (o simplemente diferente)?
AlexP
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.