Estoy tratando de hacer algo bastante inusual (para mí de todos modos) con SSH y no puedo hacer que funcione, espero que puedan ayudar.
Quiero establecer una conexión a un servidor remoto desde mi Mac usando SSH. Hasta aquí todo bien. Ahora, lo complicado es que, con la conexión al servidor remoto establecida, quiero iniciar una conexión desde el servidor remoto VOLVER a la máquina local. Lo se, loco. Básicamente, necesito saltar a través de estos aros para poder navegar por el servidor remoto y luego enviar la información del archivo de regreso a mi máquina local para que una aplicación en la máquina local pueda manejarlo. ¡Ojalá eso tenga sentido!
Por el momento, si vuelvo a SSH a la máquina local una vez que inicie sesión en el servidor remoto, el terminal simplemente se quedará allí zumbando, sin errores incluso con -v.
Estoy tratando de descubrir a dónde debería llamar mirando la salida de la variable $ SSH_CLIENT, pero estoy en una conexión a Internet estándar (sin dirección IP estática) Creo que esto podría ser lo que está causando el problema.
Cosas que he establecido: estoy en una Mac (OS X 10.6.4) y tengo habilitado el inicio de sesión remoto en las preferencias / uso compartido del sistema. Si intento conectar SSH a otro servidor (no a mi máquina local) desde mi servidor remoto, puedo conectarme sin problemas.
Entonces, los hechos anteriores me hacen pensar que estoy claro con respecto a los firewalls, etc. en las máquinas locales y remotas.
Estoy seguro de que me estoy perdiendo algo bastante obvio aquí, pero por mi vida no puedo manejarlo.
Cualquier ayuda, enlaces o empujones generales en la dirección correcta sería muy apreciada.
fuente
Respuestas:
Si cuando te vuelves a conectar a tu local te permite iniciar sesión antes de colgar, entonces esta no es la respuesta. Si no llega tan lejos, es probable que no esté volviendo a su Mac (ya sea que no llegue a ninguna parte o golpee SSH en una puerta de enlace). Pruebe con un túnel inverso (requerirá que GatewayPorts esté configurado como Activado en sshd_config en su servidor, pero creo que esto es predeterminado):
you@yourMac$ ssh -R 2000:localhost:22 user@remoteserver
Eso debería permitirle conectarse al servidor de manera normal, pero también abrir un túnel para que pueda volver a conectarse puerto 2000 (cualquier puerto superior a 1024 debería funcionar), entonces
you@yourserver$ ssh -p2000 user@localhost
EDITAR: Se cambió el nombre de host a localhost
fuente
¿Se puede acceder a su máquina local desde el servidor? ¿Puedes hacer ping? Lo pregunto porque lo que está haciendo debería funcionar si su máquina es accesible. Su servidor está en internet o en LAN, ¿la misma subred?
De todos modos, si solo necesita editar un archivo, ¿por qué no simplemente usa scp para copiar el archivo en su máquina local? Puede usar ssh para buscar el archivo en el servidor remoto y cuando tenga su ruta, ingrese en su máquina local (en otro terminal):
Para volver a colocar el archivo, scp vuelve a cambiar las rutas.
Obs: no necesita la conexión ssh inicial para usar scp, creará una nueva
Esto anterior es si necesita acceder a él en la terminal. En Linux (y ciertamente en Mac, pero no sé cómo hacerlo), puede montar una ubicación remota ssh en Redes y usar la conexión como usa un disco local (esto es sftp y la conexión tiene la forma:
sftp://user@server:/path/to/mount
y supongo que esto es lo que necesita en lugar de una conexión de terminal remota para que pueda editar el archivo directamente con la aplicación Mac.fuente
También es posible que desee echar un vistazo a
sshfs
(necesita MacFuse para esto). Esto le permite montar directorios en la máquina remota y acceder a ellos al igual que las carpetas normales en su máquina. Además de eso, aún puedessh
ingresar a la máquina y crear / buscar los archivos que necesita. Transferirlos sería tan fácil como transferir archivos locales.fuente