问题
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?
回答1:
`%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"svnexpects forward slashes or double back-slashes in the path- You may have to reopen a
cmdwindow - 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 tosvn.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.
- 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
Create a public / private key and register the public key with Sourceforge.
- On creating a key, more info herefor example.
- If you use
PuTTY, usePuTTYgento create the key, and make sure the private key is loaded inpageant. Ironically Launchpad has excellent instructions. - The public key can be registered on Sourceforge by navigating to
Home > Account > Servicesand clickingEdit SSH Keys for Shell/CVS.
Now a checkout using
svn+sshprotocol should work!
回答2:
I followed the instructions here and it worked. Its a quicker method that doesn't require uploading keys etc.
- Download
plink.exefrom http://the.earth.li/~sgtatham/putty/latest/x86/plink.exe - Place the
plink.exein your windows installation directory (%windir%) - Open the following file using Notepad
%APPDATA%\Subversion\config Add or Replace the following line in the
[tunnels]section (replace login and pwd with your sourceforge login and password)ssh = c:\\windows\\plink.exe -batch -l <LOGIN> -pw <PWD>(note the double backslash)
- Save and close the file
回答3:
For me the issue was that Tortoise was initially installed on the D drive. I uninstalled it and reinstalled it on C without changing the related settings. The solution was to copy the TortoiseSVN folder from C drive to its original location in D drive.
回答4:
For anybody (like me) working with Tortoise SVN who has it working for Tortoise SVN but needs command line access for easier bulk analysis... and doesn't want to go through the faff of registering an SSH key.
- Copy the value you are using in Tortoise - Settings - Network - SSH Client (mine has username, password arguments)
- Edit the command line configs ssh line in %APPDATA%\Subversion\config as per the answer above to use the line you copied from Tortoise
That way, you can use the Tortoise Plink.exe with arguments for username and password.
来源:https://stackoverflow.com/questions/10598069/svnssh-and-sourceforge