Tengo que configurar un túnel entre dos hosts.
Para esto lo uso ssh
de esta manera:
ssh -L MY_LOCAL_PORT:FOREIGN_ADDRESS:FOREIGN_PORT MYUSER@SSH_SERVER
después de eso, inicio sesión en mi SSH_SERVER.
¿Cómo puedo evitar esta función? Solo tengo que configurar un túnel. No tengo que iniciar sesión en mi SSH_SERVER ...
He probado la opción -N, pero mantuvo mi shell ocupado.
ssh
ssh-tunneling
Bau Miao
fuente
fuente
man ssh
muestra cómo:ssh -f -L 1234:localhost:6667 server.example.com sleep 10 && irc -c '#users' -p 1234 pinky 127.0.0.1
la opción -f background ssh y el comando remoto `` sleep 10 '' se especifica para permitir una cantidad de tiempo (10 segundos, en el ejemplo) para iniciar el servicio que se va a hacer un túnel. Si no se realizan conexiones dentro del tiempo especificado, ssh se cerrará. `` `Respuestas:
Como se dijo en otras publicaciones, si no desea una solicitud en el host remoto, debe usar la
-N
opción de SSH. Pero esto solo mantiene SSH ejecutándose sin tener un aviso, y el shell está ocupado.Solo necesita poner el SSH'ing como una tarea en segundo plano con el
&
signo:Esto lanzará el túnel ssh en segundo plano. Pero pueden aparecer algunos mensajes, especialmente cuando intentas conectarte a un puerto que no escucha (si tu servidor Apache no se inicia). Para evitar que estos mensajes aparezcan en su shell mientras hace otras cosas, puede redirigir STDOUT / STDERR al gran vacío:
Diviértete con SSH.
fuente
-f
lugar de la&
redirección io.-f -N
es lo que buscas:fuente
ps
ykill
quessh -N -f -M -S /tmp/file-sock -L port:server:port_to user@...
para que luego puedas matar la conexión conssh -S /tmp/file -o exit user@....
(o kill). De esa manera, no hay necesidad de ps. Puede indicar que cree automáticamente ese archivo en ~ / .ssh / config.ssh -S /tmp/file-sock -O exit
, no-o
en.wikibooks.org/wiki/OpenSSH/Cookbook/…