通过隧道颠覆

tlu*_*ter 10 svn ssh tunneling

为了工作,我在一个封闭的网络中工作.我们设置了一些IP地址,只能从我们的网络内部访问.但是,有一个框可以通过SSH连接到隧道并通过我们各自的开发人员框.

我知道我可以通过使用-Lssh 的参数从我们的开发人员框中获取流量.我想知道是否有一种方法可以穿过我们的开箱,进入一个封闭的盒子我们的Subversion(SVN)存储库存储了吗?

My computer --> Open box --> Developer boxes/SVN repository
Run Code Online (Sandbox Code Playgroud)

我不能ssh进入SVN框,但是有没有办法像代理一样使用ssh来访问私有的Subversion框?

更新:

1.1.1.1 - > Open Box 1.1.1.2 - > SVN Box

我穿过打开的盒子后,我可以通过SSH进入SVN盒子:

ssh user1@1.1.1.1
ssh user2@1.1.1.2
Run Code Online (Sandbox Code Playgroud)

这将允许我访问SVN框.我想,ssh进入打开的盒子,SVN盒的本地前向端口22到我的端口22.这样

ssh user1@1.1.1.1 -L 22:1.1.1.2:22
Run Code Online (Sandbox Code Playgroud)

然后在命令行中使用SVN:

svn co svn+ssh://user2@localhost/path
Run Code Online (Sandbox Code Playgroud)

这回来了

svn:网络连接意外关闭

为什么会这样?svn + ssh是否使用了我不知道的另一个端口?

wil*_*e01 8

是的,你应该能够隧道.我不确定你在工作时是否使用类似这样的svn co http://.....东西连接到SVNsvn checkout svn://......

我想你想隧道到端口80(如果使用over http),端口443(如果使用https)和端口3690,如果你只使用svn(不使用apache).所以你的命令看起来应该是这样的

ssh -f user@publicly.accessible.server.com -L 3690:your.internal.svn.server:3690 -N
Run Code Online (Sandbox Code Playgroud)

然后你应该能够从localhost检出/ commit/update/etc,就像你的localhost是svn服务器一样.

-f使它变为后台,因此当你想要的只是隧道时,你看不到终端卡在公共服务器shell提示符下.-N表示不执行远程命令.