svn超过2个ssh隧道

时间:2011-11-21 13:08:42

标签: svn ssh ssh-tunnel

我正在努力让这个工作起作用,也许有人可以帮我理解这一点。我发现了一个几乎我想做的问题Accessing Subversion repository with 2 hops using svn+ssh protocol

  

这是我想要做的:

我想在我的Live服务器上签出一个svn项目,但是在互联网上无法访问svn服务器。所以我需要ssh隧道进入我的主网络服务器,然后进入SVN服务器,然后将文件签出到Live服务器

为清晰起见,这里有一些虚拟设置:

  1. Live Server:(eth0)10.123.210.123
  2. 网络服务器:(eth0)10.89.123.123和(eth1)192.168.1.1
  3. SVN服务器:(eth0)192.168.1.8
  4. 所有服务器都使用端口9222上的密钥文件进行身份验证,并且服务器的用户admin具有有效密钥。因此管理员几乎可以从任何服务器登录到每个服务器,Live无法直接以逻辑方式访问SVN。

    所以根据上面提到的帖子中的@ epsilon-prime我应该在Live服务器上设置/home/admin/.ssh/config

    Host mysubversionserver
            HostName = 10.89.123.123
            ProxyCommand = ssh 192.168.1.1 /usr/local/bin/nc -w 10 192.168.1.8 %p
            ForwardX11 = no
            User = admin
            ForwardAgent = yes
    

    除了我无法连接此设置之外,我真的不明白这将如何帮助我进入subversion服务器。一旦使用这个ssh我在subversion服务器上,但我需要在这个隧道的Live服务器上....或者我只是错过了一些非常明显的东西?

2 个答案:

答案 0 :(得分:3)

因此,经过多次阅读和更多阅读后,我终于找到了一些解释我的问题,并意识到这个配置不起作用,而是@Rup是正确的,即使他的语法有点错误。

无论如何要关闭这个问题并为其他搜索灵魂提供一些有用的信息,这是使用linux中的配置文件制作隧道的正确方法

Host FireWallServer
        HostName <FireWall Server IP>
        User admin
        IdentityFile ~/.ssh/id_rsa
        PasswordAuthentication no
        Compression yes
        ForwardX11 no

Host SVNServer
        ProxyCommand ssh FireWallServer nc <SVN Server IP> %p
        ForwardAgent yes

你的第一个朋友将是 man ssh_config ,因为它包含了你需要的大部分信息。我在Transparent Multi-hop SSH找到的一个很好的解释 所以最后的最佳解决方案是做一个本地端口前端隧道:

ssh -L 9223:<SVN Server IP>:80 admin@<FireWall Server IP>

现在打开另一个终端并在此隧道上执行svn查询:

svn info http://localhost:9223/<path to your svn repo>

然而,这种方式需要一些必须

  1. 所有服务器必须配置为接受端口9222上的ssh,以便用户admin使用ssh_key
  2. 所有服务器必须配置ssh守护程序以使用相同的端口
  3. 必须将SVN配置为使用mod_dav
  4. 运行apache

    希望它对某人有用:)

答案 1 :(得分:0)

要制作SVN work through a proxy server,您可能需要在Live服务器上的subversion配置文件中进行特殊设置,例如在~/.subversion/servers中:

[global]
http-proxy-host=10.89.123.123
http-proxy-port=9222

在您的情况下,代理服务器可能是您用来连接到实时系统的网络服务器(如果有疑问请咨询您的网络管理员)。如果您想使用其他命令(如wget behind a proxy server)来访问互联网,则设置环境变量http_proxy非常有用。