Zugriff auf lokales SSH-Tunneling über den von Docker veröffentlichten Port

Zugriff auf lokales SSH-Tunneling über den von Docker veröffentlichten Port

Ich habe folgendes Setup:

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

Mein Docker-Container ist eine Art SSH-Verbindungsmanager. Der Dienst, der auf dem OpenSSH-Server läuft, dessen Port ich weiterleite, ist ein Webserver.

Von innerhalb des Containers aus kann ich curlden getunnelten Port erfolgreich aufrufen. Wenn ich jedoch versuche, denselben Port auf meinem Host zu veröffentlichen und curlvom Host aus zu versuchen, erhalte ich

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

Dies ist der SSH-Befehl, den ich zum Einrichten des Tunnels verwende:

ssh -nNT -L 3000:*:9413 OPENSSH_SERVER_URL

Ich betreibe diesen Container mit

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

Wenn ich mich beim Container anmelde, kann ich das curlund erhalte eine Antwort:

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

Das Gleiche kann ich vom Host aus nicht über den veröffentlichten Port tun:

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

Was übersehe ich? Ich vermute, es liegt an einer Verbindungsoption des SSH-Clients oder an einer Konfiguration auf meinem OpenSSH-Server, bin mir aber nicht sicher.

verwandte Informationen