I’m using Subversive within Eclipse to provide SVN support. But since I’m now using SVN+SSH as connection mechanism to SVN, I wanted to use my SSH Key to do the authentication for me. It took me some time to find out (find with google how I could get this to work. I ended up on another blog which contained a working explanation on how to get it to work.
You need to create an environment variable called “SVN_SSH” that points to an executable file that accepts the same command line arguments as ssh on unix. I did this by doing the following:-
- Set up ssh keys. Not going to cover that here as you can easily Google for that. You need to end up with your public key on the SVN server and your private key loaded into Paegent locally.
- Download and installed the excellent TortoiseSVN client for Windows.
- Set the following environment variable (by right-clicking on My Computer, Properties, Advanced, Environment Variables, New):-
(The “\\” is very important, otherwise it won’t work. Equally, you cannot use the plink.exe that comes with putty as that fires up a command shell window which is really annoying. The TortoisePlink.exe is a windows implementation of plink that doesn’t bring up any UI)
- Configure the Subclipse plugin to use JavaHL (JNI)
- Restart Eclipse
- Do a little victory jig (optional)
\\ is really needed, don’t (yet) understand why, but it works.
If you dislike Tortoise, then you can set the SVN_SSH variable to
c:\\putty\\plink.exe -ssh -2 -A -l username
But as Martin said, plink has one disadvantage. It creates a msdos popup window each time it’s used…
JavaHL is also needed, SVNKit doesn’t use the SVN_SSH variable.
Talking about Tortoise… A while ago I encountered some annoying lock problems (maven clean install didn’t work because maven was not allowed to delete the target directory). This was caused by the Tortoise cache. Now I disabled it in total, which helped against my locking issue, and the performance of my explorer increased as well. So it’s a win/win situation. And since I like to develop using Ubuntu, I’m not used to see the svn status in my explorer window right away anyways (although I’ve to say, it can be useful, if it didn’t cause problems I would have kept it).
Perhaps this locking problem is related to having my workspace on an ext2 fs partition on my usb drive… Not sure who to blame, yet. On my new workstation I’ve not had such locking problems yet, with this tip the cache is performing good enough.
Great tip! Saves me a lot of password-entering. Amazing that only adding an environment variable did the trick (I had already configured putty pageant).
The “\\” is necessary as Java uses the “\” as an escape character.
Thank you very much. It is great.
I keep getting queried for the username even though it’s specified in the repository settings.. anyway to fix this?
No sorry, for me it works when I specify the username in the repository url like: svn+ssh://firstname.lastname@example.org/etc
Thank you very much! This post was very usefull!
Pingback: 童城咖啡 » Eclipse svn ssh error “Can’t create tunnel”