/ acm / sigsoft / cvs workshop / Nov '96

Remote Access

CVS (1.7 or greater) has a built-in client server mode. Supported modes in version 1.9 include rsh, pserver, or kerberos authenticated. We'll cover pserver here.

Setting up the server

Consult the CVS manual and your local UNIX guru if you have questions.

Create a CVS repository if there is not already one.

Add this to /etc/services:

cvs             2401/tcp                        # remote cvs server
Add this to /etc/inetd.conf:
cvs     stream  tcp   nowait  root  /path/to/cvs   cvs pserver
Restarted inetd. Optionally, you may create a passwd file in the CVSROOT that contains name:cryptedpasswd pairs, one per line. This allows users to avoid using their normal login passwords with CVS.

Note for the paranoid:

You'll probably want to run CVS under tcpwrappers. The CVS server needs to run as root in order to change to the appropriate UID after authentication. The server accepts a connection, checks the authentication, and either exits or changes the UID and continues.

Setting up the client

Change your CVSROOT to something like:
:pserver:joeuser@foo.bar.com:/path/to/cvsroot
Before you can issues any CVS commands, you must:
$ cvs login
and enter your password. CVS stores your crypt()'d password in .cvspass in your home directory for use in future connections. The paranoid may wish to delete this between sessions. Once you have logged in, you may issue cvs commands just the same as you would with a local repository.