使用svn + ssh协议以2跳访问Subversion存储库

时间:2009-10-29 17:39:53

标签: svn ssh

我的Ubuntu Subversion服务器不能直接访问Internet,192.168.1.2

我的公共Ubuntu机器通过DMZ 192.168.1.1

公开

我已经设置了从192.168.1.1:3906到192.168.1.2:3906的端口转发,但我不知道这对svn + ssh有什么用处,因为需要一个额外的跃点才能到达我的Subversion服务器

编辑:对于遇到同样问题的人,我的困惑是因为我试图移植到我的SVN服务器(在端口'3906'运行守护程序),但访问你的通过SSH的SVN服务器与访问运行守护进程的SVN服务器(在3906)完全不同。您需要将此视为典型的ssh连接。一旦我编辑了设置

,以下两种方法都有效

2 个答案:

答案 0 :(得分:3)

在.ssh / config文件中输入类似的内容:

Host subversionserver
        Host=192.168.1.1
        ProxyCommand = ssh 192.168.1.1 /usr/local/bin/nc -w 60 192.168.1.2 %p
        ForwardX11 = no
        User = myusername
        ForwardAgent = yes

然后你就可以通过以下方式连接到你的ssh服务器:

ssh subversionserver

基本上你会登录你的公共框并在你进入后运行netcat命令。你想要的subversion服务器SSH连接将通过netcat连接。

显然你需要在盒子的某个地方安装netcat。

我的.ssh / config文件中的版本有一个通配符Host,并在netcat命令中使用%h。当您希望代理生产环境中必须通过DMZ到达的所有框时非常有用。

答案 1 :(得分:3)

您的sshd是否在端口3906上侦听(而不是标准端口22)?如果是这样,你应该能够连接到例如

   $ svn co svn+ssh://MYHOST:3906/svn/trunk/whatever

如果没有,将.1上的端口3906转发到.2上的22。

如果您不需要在Intranet上的任何其他地方使用ssh,请将.1上的端口22转发到.2上。