【发布时间】:2020-09-10 01:22:47
【问题描述】:
我正在通过互联网设置 git ssh 访问权限。
git 服务器托管在一个私有子网中,没有公开的 SSH 访问。为了提供访问(通过公共子网),已经设置了一个 HAproxy,将 SSH 访问从 Internet 转发到后端 git 服务器。
我希望用户通过如下 URL 访问 git:
ssh://git@my-git-server.example.com:8022/repopath.git
我的 HAProxy 节如下所示:
my-git-server
bind *:8022",
mode tcp",
server git 172.16.0.1:22 check port 22"
这可行,并且符合要求,但它存在固有的安全问题 - 我们还暴露了 git 服务器上的所有其他用户。即我也可以像这样连接到非 git 用户:
ssh://privateuser@my-git-server.example.com:8022
我想确保只有 git 用户被暴露(即无法通过互联网访问其他用户)。
如果可能,我想通过 haproxy 执行此操作,但不知道如何更改我的 haproxy 规则以过滤掉没有“git@”的请求 URL。 如果在 HAProxy 中不可能,请提供有关如何通过 git 服务器上的 ssh-config 进行管理的建议。
【问题讨论】: