ssh 路由到子域

aqu*_*tae 5 ssh nginx portforwarding gitlab

我设置了一个服务器,我通过 ssh 进入,我在它的 docker 容器中运行 gitlab,并使用子域通过 nginx 将 http 和 https 流量路由到它。这很好用,但我想用 ssh 做一些类似的事情,这样我就可以使用 ssh+git。目前 ssh 在 10022 上暴露给主机,但我不想打开第二个 ssh 端口,我想做的是能够做到这一点:

# To ssh into the server
ssh example.com

# To use ssh+git on gitlab
git clone ssh://git@gitlab.example.com/me/project.git
Run Code Online (Sandbox Code Playgroud)

我猜我想要的是某种方式来检查使用的主机名并转发到适当的内部端口,其方式与 nginx 为 html 流量所做的类似,但我不知道如何开始。这是可能的,如果是,是否有任何指南可以说明如何做到这一点?

RoB*_*ToZ -1

我与Gitea的情况相同,本文档详细描述了该怎么做:

由于 SSH 在容器内运行,因此如果需要 SSH 支持,则需要将 SSH 从主机传递到容器。一种选择是在非标准端口上运行容器 SSH(或将主机端口移动到非标准端口)。另一个可能更直接的选项是 Gitea 用户通过 ssh 连接到主机上的 Gitea 用户,然后主机将这些连接中继到 docker。