在我的网络中,目前有一台计算机而不是处理一堆IT repos,所有这些都在'git'用户身上。 用户还可以登录自己的帐户来运行其他程序。目前,他们在与git服务器相同的机器上执行此操作。我想在另一台计算机上实现这一点。
我试图看看是否可以使ssh服务器成为路由器上端口22的默认服务器,但是将该计算机上git用户的任何连接转发到旧服务器,git仍然存在。
这样,someone @ ourerver.com会登录到新服务器,但git@ourserver.com会登录到现有服务器。
所有涉及的机器运行/将运行ubuntu。
我不希望用户必须手动设置git遥控器以通过新计算机登录。这不是解决方案。它必须是无缝的:)
答案 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推/拉时,此应工作。