设置ssh服务器转发连接

时间:2011-12-14 13:40:43

标签: git ubuntu ssh

在我的网络中,目前有一台计算机而不是处理一堆IT repos,所有这些都在'git'用户身上。 用户还可以登录自己的帐户来运行其他程序。目前,他们在与git服务器相同的机器上执行此操作。我想在另一台计算机上实现这一点。

我试图看看是否可以使ssh服务器成为路由器上端口22的默认服务器,但是将该计算机上git用户的任何连接转发到旧服务器,git仍然存在。

这样,someone @ ourerver.com会登录到新服务器,但git@ourserver.com会登录到现有服务器。

所有涉及的机器运行/将运行ubuntu。

我不希望用户必须手动设置git遥控器以通过新计算机登录。这不是解决方案。它必须是无缝的:)

2 个答案:

答案 0 :(得分:1)

您可以将用户SHELL的{​​{1}}设置为您自己的脚本(在bash中或在python中说)。这将连接到旧服务器,并将充当这两个连接的代理。因此,您还需要处理用户的公钥以转发身份验证。

答案 1 :(得分:0)

虽然@lig提供了一个需要编写自定义脚本的服务器端解决方案,但您始终可以进行开箱即用的客户端配置。假设桌面上有最新版本的OpenSSH(具有-W开关),您可以在~/.ssh/config文件中执行此操作:

Host git.ourserver.com
User git
ProxyCommand ssh -W the.git.server:22 ourserver.com

当用户执行'ssh git.ourserver.com'时,它将首先转到ourserver.com,然后转发连接。如果两台服务器使用相同的公钥进行身份验证,并且您使用的是ssh-agent(或无密码的ssh密钥),则无需进行两次身份验证。

只要您的git的“远程”与~/ssh/config文件中的“主机”完全匹配,当您通过git推/拉时,此工作。