我们有一个用于GIT的基于macOS的服务器,当前正在运行gitolite,而用户使用ssh作为ssh git @ servername:reponame。
现在我们想在Docker容器中切换到运行gitlab。 由于端口22已经被服务器使用,所以我们需要使SSH到gitlab服务器成为可能,最好是在同一个端口上,我们正在寻找适当的解决scheme。
是否有可能在sshd中制定规则,如下所示:
如果连接用户是“git”,那么转发到localhost:2222,使其对任何客户端透明?
不,这是不可能的。 ssh协议中的用户名是在协议后面发送的,所以在连接的时候没有办法透明地将连接转发到不同的端口/服务器。
在同一台服务器上运行不同的服务,你将不得不使用不同的git的URI,例如ssh://git@server:2222/path/to/repo.git 。