【问题标题】:svn+ssh with Subclipse or TortoiseSVNsvn+ssh 与 Subclipse 或 TortoiseSVN
【发布时间】:2012-04-14 03:11:59
【问题描述】:

如果我在带有 -N 选项的 cmd 窗口中运行 plink

C:\Program Files\Putty>plink -v -l user -pw passw -L 3690:1.2.3.4:3690 mydomain.com -N

可以使用 TortoiseSVN 和 Subclipse 访问远程 svn 存储库 (svn://127.0.0.1)

将以下内容放入您的 Subversion 配置文件中:

ssh = C:/Program Files/TortoiseSVN/bin/Tortoiseplink.exe -v -l user -pw passw -L 3690:1.2.3.4:3690 mydomain.com

无法从 TortoiseSVN 或 Subclipse 访问远程 svn 存储库 (svn+ssh://127.0.0.1)

Putty Fatal Error
Network error: Connection refused

TortoiseSVN Error
Unable to connect to repository at URL 'svn+ssh://127.0.0.1

【问题讨论】:

    标签: svn ssh tortoisesvn subclipse portforwarding


    【解决方案1】:

    您似乎误解了svn://svn+ssh:// 访问方法之间的关系。

    使用svn://,subversion 期望找到一个svnserve 进程监听指定主机的端口3690。它将连接到该端口并使用颠覆协议。

    您提到的 plink 命令行打开一个 SSH 会话,通过该会话连接到端口 3690 的隧道。因此,当您运行该命令时,只要 plink 仍在运行,URL svn://127.0.0.1 就会将您连接到您的存储库。

    另一方面,使用svn+ssh://,subversion 期望找到一个 SSH 服务器。它将打开一个 SSH 连接,使用该连接启动一个新的svnserve,然后然后使用颠覆协议。

    因此,当给定 URL svn+ssh://127.0.0.1 时,subversion 会尝试与 localhost 建立 SSH 连接。这不是你想要的。

    如果您的服务器配置为 svn+ssh 访问,那么 URL svn+ssh://mydomain.com 应该可以工作。

    【讨论】:

    • 我的理解是,当给定 URL svn+ssh://127.0.0.1 时,subversion 使用 subversion 配置文件中的 ssh 定义,即 ssh = C:/Program Files/TortoiseSVN/bin/ Tortoiseplink.exe -v -l user -pw passw -L 3690:1.2.3.4:3690 mydomain.com
    • 没错。但是 subversion 将主机名“127.0.0.1”添加到该命令行,因此最终结果没有任何用处。默认配置文件中的 cmets 解释了对“ssh”设置的这种处理,以及此处有关“自定义隧道行为”的部分 svnbook.red-bean.com/nightly/en/…
    • 是否可以从TortoiseSVN or Subclipse 指定(-L 3690:1.2.3.4:3690) 将本地端口转发到远程地址?还是我需要在 cmd 窗口中运行plink -v -l user -pw passw -L 3690:1.2.3.4:3690 mydomain.com -N,然后使用 TortoiseSVN 或 Subclipse 发出 svn 命令;
    • 不,我认为这些程序不可能自动创建隧道。为 svn+ssh 访问配置服务器可能是最简单的选择:那么您根本不需要隧道。
    猜你喜欢
    • 2012-12-05
    • 1970-01-01
    • 2014-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多