系统和连接详细信息

我使用的是运行 Windows 7 的 64 位系统。我安装了 Open VPN 和 Tortoise SVN 64 位。

存储库位于远程系统中,我们使用 VPN 进行连接。

到目前为止我做了什么

我已按照必要的步骤启动 VPN 连接 -

  • 在 Open VPN 安装路径的 config 文件夹中添加了一些项目特定的配置文件。从团队成员的工作设置中获取这些文件。
  • 使用用户发起的 Open VPN 连接。
  • 运行 Putty 的 Pageant.exe,选择 .ppk 文件并输入密码短语。

  • 到这里一切都很好。

    然后我转到本地目录并尝试使用 Tortoise SVN checkout 远程存储库 URL。但它会引发以下错误 -

    结帐失败
    To better debug SSH connection problems, remove the -q option from 'ssh' in the [tunnels] section of your Subversion configuration file.
    Network connection closed unexpectedly
    

    以下是我的 Subversion 配置文件的 [tunnels] 部分的内容 -
    ### Section for configuring tunnel agents.
    [tunnels]
    ### Configure svn protocol tunnel schemes here.  By default, only
    ### the 'ssh' scheme is defined.  You can define other schemes to
    ### be used with 'svn+scheme://hostname/path' URLs.  A scheme
    ### definition is simply a command, optionally prefixed by an
    ### environment variable name which can override the command if it
    ### is defined.  The command (or environment variable) may contain
    ### arguments, using standard shell quoting for arguments with
    ### spaces.  The command will be invoked as:
    ###   <command> <hostname> svnserve -t
    ### (If the URL includes a username, then the hostname will be
    ### passed to the tunnel agent as <user>@<hostname>.)  If the
    ### built-in ssh scheme were not predefined, it could be defined
    ### as:
    # ssh = $SVN_SSH ssh
    ### If you wanted to define a new 'rsh' scheme, to be used with
    ### 'svn+rsh:' URLs, you could do so as follows:
    # rsh = rsh
    ### Or, if you wanted to specify a full path and arguments:
    # rsh = /path/to/rsh -l myusername
    ### On Windows, if you are specifying a full path to a command,
    ### use a forward slash (/) or a paired backslash (\\) as the
    ### path separator.  A single backslash will be treated as an
    ### escape for the following character.
    

    这是错误中提到的部分吗? 我在 中看不到任何 -q 选项。现在应该怎么做。

    注意 - 我也在 super 用户上发布了同样的问题 - https://superuser.com/q/295439/50101 。我在那里没有得到任何答案。让我知道是否应该删除/关闭。

    更新
    我尝试使用 Smartsvn 6。
    当 Openvpn gui 正在运行并且 putty pageant 正在运行时,我选择了“public/private-key authentication”,选择了 .ppk 文件并输入了密码短语。
    我收到此错误 -
    An error occurred while processing an SVN command
    File '\path\to\key-file.ppk' is not a valid OpenSSH DSA or RSA private key file.
    

    有任何想法吗?为什么会出现这个错误?这怎么可能是固定的或任何指针?队友有一个运行 Windows xp 的 32 位系统,他们可以结帐。而我和另一个新成员有一个运行 Windows 7 的 64 位系统,面临同样的问题。

    更多详情
    用于结帐的存储库 URL 类似于 svn+ssh://@...com/var/svn/reposito‌ ries//

    队友从未生成任何进一步的 key 或任何东西。他们只是将一些文件放入他们打开的 VPN 配置文件夹(一些 .ppk、.key、.crt 和一些打开的 vpn 配置文件)。

    更新 3
    使用 puttygen 生成 RSA/DSA key 时,“要生成的 key 类型”下有 3 个选项 -> 1. SSH-1(RSA) 2. SSH-2 RSA 3. SSH-2 DSA 。我选择了 SSH-1(RSA) 。点击保存私钥。然后再次按照相同的步骤进行结帐。我还选择了 Tortoise SVN -> settings -> Network -> SSH Client -> 在那里浏览了 pageant.exe 文件。结帐仍然不成功 - >提示“无法加载此 key (无法打开文件)”,然后出现相同的错误 -
    To better debug SSH connection problems, remove the -q option from 'ssh' in the [tunnels] section of your Subversion configuration file.
    Network connection closed unexpectedly
    

    更新 4
    一位新队友(在一个系统上工作,运行 64 位 Windows 7,和我一样)已成功从远程服务器 checkout 。请检查此问题以获取更多详细信息 Proper way to debug SVN+SSH checkout over VPN failure? How to compare with a working setup?

    最佳答案

    正如 mkro 所说,.ppk 证书是 Putty 独有的。 Putty 有一个非常方便的工具,可以在 DSARSAPPK 证书之间来回切换,您可以下载 here 。您将使用的几乎所有用于建立 SSH 连接的工具(Putty 除外)都将使用 DSARSA key 对。

    如果您使用的是 Linux,您可以下载 putty 源包并自行构建以获取 puttygen 的副本,或者如果您使用的是提供包管理器的发行版,您可以尝试安装它。例如,在 Ubuntu 上,你会这样做:

    $ sudo apt-get install putty-tools
    $ puttygen <your.ppk> -O private-openssh -o <whatever you want to name it>
    

    关于使用乌龟 SVN 通过 VPN 进行 SVN+SSH 结账,Smartsvn 失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6327364/

    10-15 16:26