Docker 게시 포트를 통해 SSH 로컬 터널링에 액세스

Docker 게시 포트를 통해 SSH 로컬 터널링에 액세스

나는 다음과 같은 설정을 가지고 있습니다 :

[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 서버의 구성인 것 같지만 확실하지 않습니다.

관련 정보