Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用svn+;访问Subversion存储库,只需2个跃点;ssh协议_Svn_Ssh - Fatal编程技术网

使用svn+;访问Subversion存储库,只需2个跃点;ssh协议

使用svn+;访问Subversion存储库,只需2个跃点;ssh协议,svn,ssh,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服务器与

我的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服务器与访问运行守护程序(在3906)的SVN服务器完全不同。。您需要将其视为典型的ssh连接。一旦我编辑了我的设置,下面两种方法都起作用了。请在您的.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


my.ssh/config文件中的版本有一个通配符主机,并在netcat命令中使用%h。当您要代理生产环境中所有必须通过DMZ才能到达的盒子时,这非常有用。

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

$ svn co svn+ssh://MYHOST:3906/svn/trunk/whatever $svn公司svn+ssh://MYHOST:3906/svn/trunk/whatever 如果不是,请将.1上的前进端口3906连接到.2上的22


或者将.1上的端口22转发到.2上的端口22,如果您不需要在intranet上的任何其他位置使用ssh。

小错误:“.12”应该是“.2”我假设这会进入试图进入的外部机器的.sssh/config。如果是这样,当您运行“ssh subversionserver”时,它如何知道位置?(我在主机配置中没有看到关于loc或ip地址的任何信息)我使用了您为您的计算机提供的ip地址(在本例中为192.168.1.1)。您可以用实际的主机名替换它们。外部计算机需要知道外部主机名,面向公众的框需要知道subversion服务器ip地址。如果我正确理解端口转发,我从办公室通过ssh端口22访问我的公用PC,因此我不确定是否可以将其转发到。2如果我将3906添加到我的sshd侦听端口,那么该端口是否会被转发?是