TortiseSVN svn+ssh Error: Unable to connect to a repository at URL ... Network connection closed unexpectedly
I finally came across a solution for this. In the TortoiseSVN FAQ of all places:
TortoiseSVN Frequently asked questions
From the FAQ:
SVN+SSH: Connection closed unexpectedly
It has been reported that svn+ssh connections of the form svn+ssh://username@server.com which were previously working, stop working with TortoiseSVN 1.5. This seems to be related to plink, and occurs if you have a default hostname set in PuTTY.
If this is the case you can fix it by using regedit or regedt32 to clear HKEY_CURRENT_USER/Software/SimonTatham/Putty/Sessions/Default%20Settings/HostName.
Another user has reported the following server-side fix:
- ssh into your account
- cd ~
- cp /etc/bashrc .bashrc
- nano .bashrc
- put a # before the line "mesg y" (which comments it out)
- Ctrl+X to exit, press Y when prompted to save.
I didn't try the first approach of editing my registry.
The second approach of editing the bash configuration worked for me.
A note about the bash configuration method:
If you're on shared hosting, your user .bashrc file will likely be loading the global /etc/bashrc file. You won't be able to edit the global file, so you'll need to work around that.
Some possible approaches:
Try adding
mesg n
to your user .bashrc file. I'm not sure if thiswill work or whether it should be placed before or after the globalfile is loaded.Don't include the global file and hard code all the settings in youruser
.bashrc
file.Remove the
mesg y
setting from the global /etc/bashrc file as it'sloading. This question discusses how to do that: Use a grepped fileas an included source in bash
An old question, but still top of the stack on Google, so I thought I'd share my solution.
Simply, it was because I didn't have a "home" directory for my user on the server. Changing the SSH client to the plink.exe that comes with Putty (right-click on folder | TortoiseSVN | Settings | Network) allowed me to see the error as the windows appeared on screen.
In my case the cause was, that the svnuser hasn't a shell (it was /bin/false).
This isn't visible in the ssh log even with debug ssh -vvv.
When you have this type of problem your debug output will look like this
debug1: Entering interactive session.debug1: Remote: Forced command.debug1: Remote: Port forwarding disabled.debug1: Remote: Agent forwarding disabled.debug1: Remote: X11 forwarding disabled.debug1: Remote: Pty allocation disabled.debug1: Remote: Forced command.debug1: Remote: Port forwarding disabled.debug1: Remote: Agent forwarding disabled.debug1: Remote: X11 forwarding disabled.debug1: Remote: Pty allocation disabled.debug1: Sending environment.debug1: Sending env LANG = en_GB.UTF-8debug1: Sending command: svnserve -tdebug1: client_input_channel_req: channel 0 rtype exit-status reply 0debug1: client_input_channel_req: channel 0 rtype eow@openssh.com reply 0debug1: channel 0: free: client-session, nchannels 1
When the shell is set to /bin/bash the log changes to
debug1: Sending env LANG = en_GB.UTF-8debug1: Sending command: svnserve -tPath: MyRepoURL: svn+ssh://svnuser@myServer.com/MyRepo