Necesito configurar un par de túneles ssh desde un script de shell. He intentado ejecutarlos como tareas bg usando:
#!/bin/sh
ssh -L 3000:server1:5029 me@server2 &
ssh -L 3001:server3:3306 me@server2 &
pero los túneles no parecen funcionar correctamente cuando los lanzo de esa manera.
Funcionan bien cuando los configuro manualmente en sus propias pestañas, por lo que mi siguiente idea es que el script abra nuevas pestañas en Terminal y ejecute los comandos allí como procesos en primer plano.
Nota: esta pregunta originalmente era "¿Cómo inicio una nueva pestaña de terminal desde el shell y luego ejecuto un comando en ella?", Pero obtuve dos respuestas sobre cómo lidiar con los túneles. Para la pregunta "abrir un shell", encontré esto en SuperUser , que funcionará, aunque las nuevas pestañas en segundo plano serían preferibles a las ventanas de primer plano que se abren.
fuente
Respuestas:
Esto técnicamente no es una respuesta a la pregunta formulada, sino más bien una respuesta a su problema como se describe. El comando ssh tiene dos interruptores que pueden serle útiles:
le dice a ssh que se quede en primer plano el tiempo suficiente para pedir las contraseñas necesarias y luego se ponga en segundo plano, no ejecutando ningún comando remoto sino simplemente manejando el túnel.
Si realmente desea que esto aparezca en una pestaña, puede que desee una solución diferente.
fuente
jobs
tampocops
las listas de un mango a ellos ....-f
y ejecuta el proceso en segundo plano&
al final, puede obtener el PID$!
como un controlador para matar el proceso del túnel más adelante en su secuencia de comandos.Sugeriría simplemente integrar sus túneles en su conexión "uno para lo que sea". Puede facilitarlo agregando las entradas apropiadas a su
~/.ssh/config
archivo:Luego puede simplemente iniciar sesión ejecutando:
Los túneles deberían aparecer y comenzar a funcionar, dejándolo con una única instancia SSH en la que hacer "lo que sea". Sin embargo, si necesita abrir una segunda conexión
server2
, es posible que reciba un error:Esto no duele más que tus ojos. También puede configurar estos reenvíos para múltiples servidores agregando líneas similares para otros servidores, y todo sucedería de forma automática.
fuente