将 Git 用户的 ssh 转发到 Git 服务器

将 Git 用户的 ssh 转发到 Git 服务器

找到关于这个简单问题的信息出奇地困难。

像许多人一样,我们在远程实例上运行 gitlabs/gogs 服务器。目前它侦听端口 10022。我们还在该实例上运行 ssh 来管理服务器。它侦听端口 22。

我们希望监听端口 22 的 ssh 服务器将 Git@ ONLY 的连接转发到 10022 上的 Git 服务器。

这样,当人们在本地使用 Git 时,他们就不必每次都手动指定我们远程 Git 服务器的端口。

我们应该怎么做?

答案1

我从来没有这样做过,但也许这符合你的要求:

您可以Match为用户放置一个块,git其中sshd_config包含 ForceCommand.强制命令可以是ssh登录真实服务器。您可以使用不带密码的公钥身份验证,因此用户可能不会注意到这一点。

答案2

更简单的方法是:

只需告诉您的用户将 git 服务器的别名添加到~/.ssh/config.然后它们具有与 github 相同的便利性,并且您不必在服务器端执行一些奇怪的重定向。

例如:

# put into ~/.ssh/config
Host mygitlab
Hostname git.example.org
Port 10022

然后你的用户可以像这样克隆等:

$ git clone mygitlab:someuser/somerepo.git

答案3

解决方案在于 gitlab GUI:只需单击克隆按钮,然后粘贴到命令行中。

$ git clone ssh://[email protected]:10022/mygroup/myproject.git

您可以通过以下方式验证一切是否正确:

$ git remote -v
origin  ssh://[email protected]:10022/mygroup/myproject.git (fetch)
origin  ssh://[email protected]:10022/mygroup/myproject.git (push)

相关内容