Amazon If you'd like to use SSH as the SVN protocol tunnel scheme you've come to the right place. This complete tutorial will walk you through tunneling SVN communications with SSH security so that your communications with the SVN server are absolutely secure!
Some may be concerned whether doing so would slow down the SVN communications. The answer is yes, but if only work with source code then the effects are negligible. Just use SSH as SVN protocol tunnel scheme and if it slows you down too much then remove it!
Step 1: Install TortoiseSVN
Google and download and install TortoiseSVN. After you finish installation make sure C:/Program Files/TortoiseSVN/bin/TortoisePlink.exe exists. TortoisePlink.exe is the executable you'll need to make everything work.
Putty does NOT work! You are advised to add SSH tunnel to your communication with the SVN server so that nobody can hijack your code. You don't want your award winning code to leak out do you? Step 2: Generate a .ppk Key
If you haven't done it go to your AWS console and generate an RSA key pair. The private key ends in .pem. Download the private key and use PuTTYgen to generate the corresponding .ppk key. Put your key somewhere safe. Let's use C:/my-ec2-key.ppk for your .ppk key and C:/my-ec2-key.pem for your .pem key.
A .pem key is an RSA private key. A .ppk key is the equivalent key in a format that OpenSSH can understand. OpenSSH is an implementation of the SSH algorithm. This should already be the case, but make sure your public key exists in /home/ubuntu/.ssh/authorized_keys. The public key should begin with 'ssh-rsa' and end with your key pair's name. Step 3: Edit SVN Configuration File
If you are using Windows 7 or Windows Vista it should be located at C:\Users\\AppData\Roaming\Subversion\config. If you are using Windows XP it should be located at C:\Documents and Settings\%USERID%\Application Data\Subversion\config. Open it and add the following line:
ssh = C:/Program Files/TortoiseSVN/bin/TortoisePlink.exe -i C:/my-ec2-key.ppk
Save your changes. My subversion configuration file looks like this:
### The file-name-pattern can contain wildcards (such as '*' and
091
### '?'). All entries which match will be applied to the file.
092
### Note that auto-props functionality must be enabled, which
093
### is typically done by setting the 'enable-auto-props' option.
094
# *.c = svn:eol-style=native
095
# *.cpp = svn:eol-style=native
096
# *.h = svn:eol-style=native
097
# *.dsp = svn:eol-style=CRLF
098
# *.dsw = svn:eol-style=CRLF
099
# *.sh = svn:eol-style=native;svn:executable
100
# *.txt = svn:eol-style=native
101
# *.png = svn:mime-type=image/png
102
# *.jpg = svn:mime-type=image/jpeg
103
# Makefile = svn:eol-style=native
Step 4: Make sure port 22 is NOT Blocked!
If you haven't in your AWS control panel add a TCP rule that opens up port 22 for public access. Again here's the screenshot:
Step 5: Checkout Files from SVN!
Install Subclipse if you haven't. Inside Eclipse in PHP Explorer right click your mouse and select New -> Other and pick SVN. Here's a screen shot:
Click Next. Select 'Create a New Repository' and click Next. In the Url field type 'svn+ssh://ubuntu@23.2.1.2/svnrepos/repository'. Click Next and everything should just work. If you are prompted with a dialog form then enter your user name 'ubuntu' and private key file path 'C:/my-ec2-key.pem'. If it doesn't work try 'C:/my-ec2-key.ppk' as the key file path.
Does /svnrepos/conf/passwd still matter? Now you are using RSA key infrastructure to identify yourself. When Eclipse tries to connect to the SVN server it uses C:/my-ec2-key.ppk (your private key) in the encrypted communication with the SSH server, which uses the public keys in /home/ubuntu/.ssh/authorized_keys. Therefore /svnrepos/conf/passwd NO longer applies. You can remove the line 'ubuntu = ubuntupassword' and everything would still work. If you have any questions let me know and I will do my best to help you!