SVN+SSH checkout over VPN using tortoise SVN, Smartsvn failing

Sandeepan Nath picture Sandeepan Nath · Jun 13, 2011 · Viewed 10.3k times · Source

System & connection details

I am using a 64-bit system running Windows 7. I have Open VPN and Tortoise SVN 64-bit installed.

The repository is in a remote system, and we connect using VPN.

What I have done so far

I have followed the necessary steps to initiate the VPN connection -

  • Added some project specific config files inside the config folder of the Open VPN installation path. Took these files from working setup of team members.
  • Initiated Open VPN connection using a user.
  • ran Putty's Pageant.exe, selected the .ppk file and entered the pass phrase.

Everything fine upto here.

Then I went to the local directory and tried to checkout the remote repository URL using Tortoise SVN. But it throws the following error -

Checkout Failed

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

Following are contents of the [tunnels] section of my Subversion config file -

### 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.

Is this the section referred to in the error? I can't see any -q option there. What should be done now.

Note - I had posted the same question on Superuser too - https://superuser.com/q/295439/50101 . I did not get any answers there. Let me know if that should be deleted/closed.

Update
I tried with Smartsvn 6. While Openvpn gui is running and putty pageant is running, I selected "public/private-key authentication", selected the .ppk file and entered the pass phrase. I get this error -

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.

Any ideas? Why this error? How could this be fixed or any pointers? Teammates have a 32-bit system running Windows xp and they are able to checkout. Whereas me and another new member have a 64-bit system running Windows 7, facing the same problem.

Further Details
The repository URL used to take checkout is like svn+ssh://@...com/var/svn/reposito‌​ries//

Teammates never generated any further keys or anything. They simply put some files into their open VPN config folder (some .ppk, .key, .crt and some open vpn config files).

Update 3
While generating RSA/DSA key using puttygen, there are 3 options under "type of key to generate" -> 1. SSH-1(RSA) 2. SSH-2 RSA 3. SSH-2 DSA. I selected SSH-1(RSA). clicked on save private key. Then again followed the same steps to take checkout. I also selected Tortoise SVN-> settings-> Network -> SSH Client -> browsed the pageant.exe file there. Still unsuccessful with checkout-> prompts "Couldn't load this key (unable to open file)" and then the same error -

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

Update 4
One new teammate (working on exactly a system, 64-bit running windows 7, same as me) has successfully checked out from the remote server. Please check this question for further details Proper way to debug SVN+SSH checkout over VPN failure? How to compare with a working setup?

Answer

TkTech picture TkTech · Jun 24, 2011

As stated by mkro, the .ppk certificate is unique to Putty. Putty has a very handy tool for going back and forth between DSA, RSA, and PPK certificates, which you can download here. Just about every tool you'll use (other than Putty) that establishes SSH connections will use either a DSA or a RSA key-pair.

If you're on Linux, you can either download the putty source packages and build it yourself to get a copy of puttygen, or if you're on a distribution that provides a package manager, you can try to install it. For example, on Ubuntu, you would do:

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