Accessing the CVS Repository through a SSH proxy
Remote access to the CVS repository is through a SSH proxy which has a lifetime of 60 minutes.
If connecting from a UNIX environment please use two terminal sessions located on the same machine.
One session should be used to run the SSH proxy (as described below) which must be kept running in the foreground while you are accessing the CVS repository from the second terminal session.
To set up the proxy execute the following command on the machine that you will be using to access the CVS repository. The private keys are accessible from a password protected area using your CVS username and password. You must download and install the appropriate private key (by following the link) on your local system.
The access method varies slightly depending on your SSH client:
- OpenSSH:
% ssh -2 -i private-key-file -l cvs-ssh saturn.icpc.doc.ic.ac.uk -L 2401:localhost:2401 proxy
or
% ssh -2 -i private-key-file -o PubkeyAuthentication=yes -o PreferredAuthentications=publickey
-l cvs-ssh saturn.icpc.doc.ic.ac.uk -L 2401:localhost:2401 proxy
The private-key-file should be owned and only readable by the yourself (chmod 400 private-key-file).
- SSH (www.ssh.com):
- Create a directory ~/.ssh2
- Create a file ~/.ssh2/cvsssh-dsa-key
- Create a file ~/.ssh2/cvsssh-dsa-key.pub
- Create a file ~/.ssh2/cvsssh-keylist containing the line:
idkey cvsssh-dsa-key
- Run the command to start up the proxy:
ssh -x -i cvsssh-keylist -l cvs-ssh -L 2401:localhost:2401 saturn.icpc.doc.ic.ac.uk proxy
Successfully running this command will produce the message:
Sleeping for one hour
The proxy can be terminated by typing ~. in the window in which the ssh command was issued.
In the second terminal session you should configure the following CVSROOT environment variable:
setenv CVSROOT :pserver:username@localhost:/cvs/repositoryName
where username is your CVS username and the repositoryName is the name of the repository you wish to access. Nothing else (e.g. localhost) needs to be changed. This is the terminal in which all CVS commands should be issued.