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 -
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/repositories//
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?
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>