我正在努力让这个工作起作用,也许有人可以帮我理解这一点。我发现了一个几乎我想做的问题Accessing Subversion repository with 2 hops using svn+ssh protocol
这是我想要做的:
我想在我的Live服务器上签出一个svn项目,但是在互联网上无法访问svn服务器。所以我需要ssh隧道进入我的主网络服务器,然后进入SVN服务器,然后将文件签出到Live服务器
为清晰起见,这里有一些虚拟设置:
所有服务器都使用端口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服务器上....或者我只是错过了一些非常明显的东西?
答案 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 :(得分: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
非常有用。