Custom SSH port with svnserve

I had some trouble accessing my svn repository on my server.  The people who host my website use a non-standard SSH port, and they force you to access the svn server through SSH – but without telling svnserve to use the non-standard port!

So, after much trawling through the internet, I finally found the solution, thanks to this page.  Their solution didn't quite match my needs (as they assume root access for the Linux shell, which I don't have), but it got me over the hump.  Their solution is to set the global variable $SVN_SSH, '
It seems like the environment variable is the only way to set the SSH port.'

However, this is wrong – there is another way, and it is more elegant, I think.

The subversion configuration file settings on a standard Linux setup can be found in the '.subversion' directory.  In this folder you can find the 'config' file.  Open this, and you will find the '[tunnels]' section.  Add the following code to that section:

custom_ssh = $SVN_SSH ssh -p 12345

This creates a custom ssh access protocol which is identical to the standard one, except with a different port number.  If you want to specify a different (or non-ssh) protocol you can do that too.  More details can be found here.

To access the repository now, you simply use this:

$ svn co svn+custom_ssh://username@server_ip/path/to/repos/ .

instead of this:

$ svn co svn+ssh://username@server_ip/path/to/repos/ .

Problem solved!

3 Responses to “Custom SSH port with svnserve”


  1. Farhan Ahmad

    Thanks a lot for summarizing this! It saved me time.

  2. Johan

    You just made my day, thank you.

  3. slavka

    good stuff :) works like a charm

Leave a Reply