根据用户名转发 SSH 连接



我发现许多网站解释ssh端口转发ssh反向代理ssh多路复用等,涉及sshpipersslh运行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流量。 希望这对您有所帮助!

最新更新