h1ghlevelb1ts

svn over ssh prompts for the wrong username

It is time again for one of these rather low level bits :)
The company I am currently working for uses subversion as version control system. The server is setup to use svn+ssh protocol only. Initially I tried to access the source code like this:

svn --username hardy.ferentschik checkout svn+ssh://servername/projectname/trunk

For some reason svn would then always prompt me for a password for

hardy@servername

, where hardy is my user name on the local machine. I couldn't really figure out what was going on. It seemed that the user name specified via --username was not getting passed to the ssh client. I then tried:

svn checkout svn+ssh://hardy.ferentschik@servername/projectname/trunk

which worked fine. I completely forgot about this problem for a while. Until yesterday that is. I wanted to configure a svn:external link from one project to another in order to be able to check them out into the same directory. svn:external works similar to cvs ampersand modules and can be a very useful feature.

For the svn:external property I couldn't use the url with my username in it,
since then everyone checking out the project would have to authenticate with my credentials. Not really a solution. I had to use svn+ssh://servername/projectname/trunk. But now of course my problem re-appeared.

First I tried to find a solution in the svn documentation and on the svn forums, but there is really only the --username option. I was already close to giving up when I thought that if I just could tell ssh which user to use. That was the right path and after a little more search I found out about the config file in the .ssh directory. I've never used it before so I did not even know that it existed. Anyway, the simple solution to my problem was to create a config file in my .ssh directory and putting the following in:

Host servername
User hardy.ferentschik

That fixed the problem :) I still would claim that there must be a bug in the svn client implementation when using --username together with svn+ssh. Surely it should pass the user name on to ssh.

I hope this might help someone with similar problems.

Cheers,
Hardy

 

Old comments

2008-05-01Anonymous
Thanks a lot hardy. It was indeed a very useful blog. I had a similar problem and I could solve it following your solution.

Thanks once again!!
Niraj
2008-06-11Craig Knox
Thanks Hardy - this worked like a charm - I was about to start trying to change my short user name on OSX which is a nightmare, but this was much easier!
2008-09-12Daniel
thank you very much Hardy. I already wasted most of a day on this problem and your article helped me fix it in 2 minutes!
2008-12-04Anonymous
This is the greatest blog posting ever. I've been trying to figure out this problem for hours!
2008-12-29Jochen
Thank you.
2009-08-21Maascamp
Thank you! Been having this issue and using an ugly workaround for a while. Finally decided enough is enough. This was incredibly helpful.
2010-06-28SoulGrocery
Thank you very much! Would have taken me ages to figure out otherwise...
2010-09-30Anonymous
Just wanted to pipe in with a "Metoo!" thanks for the fix! spent ages googling for a solution to this!
2011-03-08Nick
Wow. THANK YOU. Such a clean solution.
2011-06-03Kervin Ramen
Very nice!
2011-10-18Michael
Great post worked for me. Thanks for posting.
2011-11-30Anonymous
Great, it worked! Note to make sure to chmod og-rwx ~/.ssh/config !
2013-01-03Sam Cook
Just wanted to say 'thanks' for this! Saved my bacon facing exactly the same problem and will hopefully make a lot of other things easier in the future.