mapear la conexión ssh a través de localhost

mapear la conexión ssh a través de localhost

No estoy seguro de si lo que intento hacer es posible, pero estoy intentando que una conexión SSH pase a través de localhost con reenvío de puertos.

La razón por la que quiero hacerlo es que tengo cierta configuración en un proveedor de nube donde una instancia obtiene una dirección IP diferente cada vez que se inicializa y esto significa que tengo que cambiar algunas configuraciones en mi entorno de desarrollo en cada ejecución. Me preguntaba si de alguna manera puedo guiarlo a través de alguna configuración de host local estática, podría hacerlo un poco menos tedioso.

Entonces, por el momento, puedo conectarme de la siguiente manera y agregué algún reenvío de puertos como:

ssh [email protected] -L2222:localhost:2222

Mi esperanza era poder hacer algo como:

ssh luca@localhost -p 2222

pero esto viene con el error:

ssh_exchange_identification: read: Connection reset by peer

Me sorprende que no se trate de una conexión rechazada ni de un tiempo de espera ni nada parecido, así que me pregunto si se trata de algún problema de configuración.

Respuesta1

Tengo cierta configuración en un proveedor de nube donde una instancia obtiene una dirección IP diferente cada vez que se inicializa y esto significa que tengo que cambiar algunas configuraciones en mi entorno de desarrollo en cada ejecución. Me preguntaba si de alguna manera puedo guiarlo a través de alguna configuración de host local estática, podría hacerlo un poco menos tedioso.

El método habitual para solucionar este problema es... DNS. Cree un subdominio con TTL muy bajo y actualice sus registros A/AAAA para que apunten a la nueva instancia cada vez que se vuelva a crear. Algunos proveedores de la nube podrían incluso ser capaces de automatizar esto.

(Si el DNS global no funciona, entonces /etc/hosts también funcionaría).

Entonces, por el momento, puedo conectarme de la siguiente manera y agregué algún reenvío de puertos como:

ssh [email protected] -L2222:localhost:2222

Probablemente su servidor remoto no esté configurado para escuchar conexiones SSH en el puerto 2222. Solo está configurado para el puerto estándar 22. Entonces, la opción de reenvío que deseaba es:

-L 2222:localhost:22

Aquí 2222está el puerto que estará abierto en su computadora y localhost:22es el destino final al que el servidor intentará conectarse.

Me sorprende que no se trate de una conexión rechazada ni de un tiempo de espera ni nada parecido, así que me pregunto si se trata de algún problema de configuración.

El reenvío SSH -Lno funciona a nivel de paquetes como el reenvío de puertos de su enrutador. Funciona a nivel TCP – el clientesí mismoescucha las conexiones y, cada vez que recibe una, le pide al servidor que se conecte al destino final.

Entonces hay 3 conexiones encadenadas: cliente n.° 2 → cliente n.° 1 → servidor → destino.

Esto significa que si el servidor no logra conectarse, el cliente n.° 1 (que realiza el reenvío) no puede producir un error de "Conexión rechazada" para el cliente n.° 2 porque, de hecho, la conexión local ha sido interrumpida.aceptadoya. Lo único que puede hacer es cerrar la conexión existente sin transferir ningún dato. De ahí "Restablecimiento de conexión por parte del par".

información relacionada