我正在通过互联网设置git ssh访问。
git服务器托管在私有子网中,没有公开的SSH访问权限。为了提供访问(通过公共子网),已经建立了一个HAproxy,通过互联网将SSH访问转发到后端git服务器。
我希望用户可以通过以下网址访问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进行管理的建议。
答案 0 :(得分:0)
即使我已经快4年了,也许有人仍然对此感兴趣。据我所知,HAProxy无法做到这一点。但是,如果您仍然使用HAProxy服务器从远程/互联网连接到它,则可以在sshd_config文件中的Git服务器上轻松执行此操作。 只需将其添加到sshd_config文件的末尾即可:
Match Address IP.OF.HAPROXY.SERVER
AllowUsers git
这样,当流量来自HAProxy的IP时,仅允许用户git登录。不过,在重新加载sshd之前,您可能需要使用以下命令测试新的sshd配置:
sshd -t