SVN+SSH and Sourceforge
sourceforge, svn, windows
Solution
`%SVN_SSH% needs to be set correctly and an SSH key needs to be registered with Sourceforge.
Note that new Sourceforge projects are version 2.0 by default, while 99% of the Sourceforge documentation is for version 1.0 and appears outdated.
These instructions assume you have `SVN` and the `PuTTY` tools installed, and that you can successfully access your project using a non-secure protocol, eg the read-only `svn checkout svn://USER@svn.code.sf.net/p/PROJECT/code/trunk PROJECT-code` style command should work.
These instructions explain how to do the same with `svn checkout svn+ssh://...` which is needed for write access to Sourceforge.
Set `%SVN_SSH%` to the fully qualified path of your SSH client. E.g. `setx SVN_SSH "C:/Program Files (x86)/PuTTY/plink.exe"`
- `svn` expects forward slashes or double back-slashes in the path
- You may have to reopen a `cmd` window
- Test by typing `%SVN_SSH%` at the prompt and confirm you get your ssh programs help screen (or whatever behaviour you expect from executing with no arguments)
(Optional?) Cache the server RSA key. Open `PuTTY`, login to `svn.code.sf.net` (or whatever the server of your project is). A prompt will appear asking if you if you want to cache the server RSA key - click Yes.
- You might not need to do this, if not when you use SVN to connect ot your project for the first time you will be asked the same question. Type `y`.
- However, I did this because I thought the interactive prompt could be part of the problem.
Create a public / private key and register the public key with Sourceforge.
- On creating a key, more info herefor example.
- If you use `PuTTY`, use `PuTTYgen` to create the key, and make sure the private key is loaded in `pageant`. Ironically Launchpad has excellent instructions.
- The public key can be registered on Sourceforge by navigating to `Home > Account > Services` and clicking `Edit SSH Keys for Shell/CVS`.
Now a checkout using `svn+ssh` protocol should work!
Problem
I'm new to both Sourceforge and SVN (SilkSVN on Windows). I managed to check out a project using ``` svn co --username=zeroth123 svn://zeroth123@svn.code.sf.net/p/stddecimal/code/trunk stddecimal-code ``` However, every time I try and use ssh (so I can check in for example) it fails with ``` > svn co --username=zeroth123 svn+ssh://zeroth123@svn.code.sf.net/p/stddecimal/code/trunk stddecimal-code svn: E720087: Unable to connect to a repository at URL 'svn+ssh://zeroth123@svn.code.sf.net/p/stddecimal/code/trunk' svn: E720087: Can't create tunnel: The parameter is incorrect. ``` I've set `SVN_SSH` to point to my fully qualified `plink.exe` and it makes no difference. I also tried changing it to `junk.exe` and didn't get anything different, so I don't think we're even looking at `SVN_SSH`, which exhausts all of the advice I've been able to find on the Sourceforge and other forums. For the record I am the project administrator and therefore have write permissions (or at least think I do!) Any ideas?