Доступ к локальному туннелированию SSH через опубликованный порт Docker

Доступ к локальному туннелированию SSH через опубликованный порт Docker

У меня следующая настройка:

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

Мой контейнер Docker — это своего рода менеджер подключений SSH. Служба, запущенная на сервере OpenSSH, порт которого я перенаправляю, является веб-сервером.

Изнутри контейнера я могу успешно curlтуннелировать порт. Однако, когда я пытаюсь опубликовать тот же порт на моем хосте и пытаюсь curlс хоста, я получаю

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

Вот команда SSH, которую я использую для настройки туннеля:

ssh -nNT -L 3000:*:9413 OPENSSH_SERVER_URL

Я запускаю этот контейнер с помощью

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

Если я войду в контейнер, то смогу curlполучить ответ:

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

Я не могу сделать то же самое с хоста через опубликованный порт:

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

Что я упускаю? Подозреваю, что это опция подключения на клиенте SSH или конфигурация на моем сервере OpenSSH, но я не уверен.

Связанный контент