Acceder al túnel local SSH a través del puerto publicado de Docker

Acceder al túnel local SSH a través del puerto publicado de Docker

Tengo la siguiente configuración:

[OpenSSH server] <---> [Docker container with SSH client] <---> [host machine]

Mi contenedor Docker es una especie de administrador de conexiones SSH. El servicio que se ejecuta en el servidor OpenSSH cuyo puerto estoy reenviando es un servidor web.

Desde el interior del contenedor, puedo acceder con éxito curlal puerto tunelizado. Sin embargo, cuando intento publicar ese mismo puerto en mi host y lo intento curldesde el host, aparece

curl: (56) Recv failure: Connection reset by peer

Este es el comando SSH que estoy usando para configurar el túnel:

ssh -nNT -L 3000:*:9413 OPENSSH_SERVER_URL

Estoy ejecutando este contenedor usando

docker run --rm --name test -p 3000:3000 ssh-connection-manager

Si inicio sesión en el contenedor, puedo curlobtener una respuesta:

docker exec -it --entrypoint sh test
# curl localhost:3000
Hello!

No puedo hacer lo mismo desde el host a través del puerto publicado:

$ curl localhost:3000
curl: (56) Recv failure: Connection reset by peer

¿Qué me estoy perdiendo? Sospecho que es una opción de conexión en el cliente SSH o una configuración en mi servidor OpenSSH, pero no estoy seguro.

información relacionada