通过第三台机器的 SVN-SSH 隧道?

Posted

技术标签:

【中文标题】通过第三台机器的 SVN-SSH 隧道?【英文标题】:SVN-SSH Tunnel via 3rd machine? 【发布时间】:2011-08-12 13:50:55 【问题描述】:

我有一个设置了 SVN+SSH 的客户端,我需要访问它。不幸的是,我无法将我的 IP 列入白名单,因为我在 Comcast 上,而且他们有一些针对此的安全策略。但是,我确实可以通过 SSH 访问另一台机器,我可以通过 SSH 连接到该机器也可以通过 SSH 连接到 SVN 服务器(通过非标准端口)......所以整个循环需要看起来像:

Local Computer (OSX)  --SSH-->  Server1  --SVN+SSH_4567-->  SVN Server

我知道如何设置基本的 SSH 隧道,但我不确定如何设置,或者是否可行。帮助? :)

请注意,理想情况下,我可以在 ~/.ssh/config~/.subversion/config 中以某种方式进行设置,而不必每次我想提交时都从 A->B->C 手动隧道/更新

【问题讨论】:

【参考方案1】:
ssh -L 1234:svnserver:4567 server1

隧道连接将是

ssh -p 1234 localhost

为了稍微自动化,您可以将隧道连接添加到~/.subversion/config

[tunnels]
tssh = ssh -p 1234

然后使用svn+tssh://localhost/path/to/repo,但我不知道自动创建隧道的方法。

【讨论】:

【参考方案2】:

打开到Server1 的 SSH 会话并在该会话中设置隧道:

ssh server1 -L 9000:127.0.0.1:svnserver:22

PS。您可能需要检查 ssh man 页面的语法。我不记得打开隧道的正确标志。

然后在本地,使用svn+ssh://localhost:9000 连接到服务器

【讨论】:

这如何让我进入 SVN 服务器? er,对不起,我忘了输入 svnserver 部分。答案已相应编辑。 ssh Server1 -L 1234:127.0.0.1:SVNServer:4567 给出 "Bad local forwarding specification"(4567 是 SVNServer 的 SSH 端口)

以上是关于通过第三台机器的 SVN-SSH 隧道?的主要内容,如果未能解决你的问题,请参考以下文章

jmx/jstatd 通过 ssh 隧道访问远程机器

ping虚拟机丢包问题分析

通过 php 中的 ssh 连接隧道请求

通过 ssh 隧道的 ftp [关闭]

linux_配置三台虚拟机免密登录

使用带有公钥和密码的 SSH 隧道通过 SQLAlchemy 连接到远程 PostgreSQL 数据库,所有这些都来自 Windows 机器