我发现许多网站解释ssh端口转发,ssh反向代理,ssh多路复用等,涉及sshpiper
,sslh
,运行ssh socks服务器,只是配置本地SSH服务器等等。 所以我现在很困惑,可能会问一个非常常见和/或简单的问题:
正如您可能已经从标题中猜到的那样,我想在 docker 容器内设置一个 git 服务器 (GitLab(,侦听端口 22 上的 SSH 连接,而不必使用不同的端口进行主机上的默认 ssh 操作(终端、scp 等((如此处建议(
即
ssh alice@myserver.org
仍然可能以及git clone git@myserver.com:path/to/project
- 并且我不想在客户端计算机上进行任何设置
如果您更喜欢图片:
+------ myserver.org --------+
| +----+ +- typical -+ |
+--------+ alice@myserver.org:22 | | | | SSH | |
| client | ----------------------> -+--+----+---->| service | |
+--------+ all names but `git` | | ? | +-----------+ |
| | | |
| | ? | +- docker --+ |
+--------+ git@myserver.org:22 | | | | with | |
| client | ----------------------> -+--+----+---->| GitLab | |
+--------+ only user `git` | | | | | |
| +----+ +-----------+ |
+----------------------------+
你能告诉我推荐/最常见的方法是什么吗?这个问题听起来很有希望,但答案似乎配置了客户端(我想避免(
这个项目可能会对你有所帮助。 https://github.com/tg123/sshpiper。
SSH Piper用作类似代理的软件,并通过用户名,src IP等路由连接。
+---------+ +------------------+ +-----------------+
| | | | | |
| Bob +----ssh -l bob----+ | SSH Piper +-------------> Bob' machine |
| | | | | | | |
+---------+ | | | | +-----------------+
+---> pipe-by-name--+ |
+---------+ | | | | +-----------------+
| | | | | | | |
| Alice +----ssh -l alice--+ | +-------------> Alice' machine |
| | | | | |
+---------+ +------------------+ +-----------------+
Downstream SSH Piper Upstream
首先,感谢您阅读TheDockerExperts博客,希望我们的文章对您有所帮助!让我解释一下我们如何在我们公司进行SSH代理。
我们有 HAproxy 侦听 TCP 22 端口并将流量发送到 GitLab 服务器,在主机上我们有自定义 SSH 端口。不幸的是,由于我们在这种情况下使用TCP平衡,因此无法根据域名和用户创建平衡器。你可以 小型VPS ,在其上启动HAproxy并使用它来平衡您的GIT流量。 希望这对您有所帮助!