Next: Password authenticated, Previous: Server requirements, Up: Remote repositories [Contents][Index]
CVS may use the ‘ssh’ protocol to perform
these operations, so the remote user host needs to have
a either an agent like ssh-agent
to hold
credentials or a .shosts file which grants
access to the local user. Note that the program that
CVS uses for this purpose may be specified using
the --with-ssh flag to configure.
CVS uses the ‘rsh’ protocol to perform these operations, so the remote user host needs to have a .rhosts file which grants access to the local user. Note that the program that CVS uses for this purpose may be specified using the --with-rsh flag to configure.
For example, suppose you are the user ‘mozart’ on the local machine ‘toe.example.com’, and the server machine is ‘faun.example.org’. On faun, put the following line into the file .rhosts in ‘bach’’s home directory:
toe.example.com mozart
Then test that ‘rsh’ is working with
rsh -l bach faun.example.org 'echo $PATH'
To test that ‘ssh’ is working use
ssh -l bach faun.example.org 'echo $PATH'
Next you have to make sure that rsh
will be able
to find the server. Make sure that the path which
rsh
printed in the above example includes the
directory containing a program named cvs
which
is the server. You need to set the path in
.bashrc, .cshrc, etc., not .login
or .profile. Alternately, you can set the
environment variable CVS_SERVER
on the client
machine to the filename of the server you want to use,
for example /usr/local/bin/cvs-1.6.
There is no need to edit inetd.conf or start a CVS server daemon.
There are three access methods that you use in CVSROOT
for rsh or ssh. :server:
specifies an internal rsh
client, which is supported only by some CVS ports.
:extssh:
specifies an external ssh program. By
default this is ssh
(unless otherwise specified
by the --with-ssh flag to configure) but you may set the
CVS_SSH
environment variable to invoke another
program or wrapper script.
:ext:
specifies an external rsh program. By
default this is rsh
(unless otherwise specified
by the --with-rsh flag to configure) but you may set the
CVS_RSH
environment variable to invoke another
program which can access the remote server (for
example, remsh
on HP-UX 9 because rsh
is
something different). It must be a program which can
transmit data to and from the server without modifying
it; for example the Windows NT rsh
is not
suitable since it by default translates between CRLF
and LF. The OS/2 CVS port has a hack to pass ‘-b’
to rsh
to get around this, but since this could
potentially cause problems for programs other than the
standard rsh
, it may change in the future. If
you set CVS_RSH
to SSH
or some other rsh
replacement, the instructions in the rest of this
section concerning .rhosts and so on are likely
to be inapplicable; consult the documentation for your rsh
replacement.
Continuing our example, supposing you want to access the module foo in the repository /usr/local/cvsroot/, on machine faun.example.org, you are ready to go:
cvs -d :ext:bach@faun.example.org:/usr/local/cvsroot checkout foo
(The bach@ can be omitted if the username is the same on both the local and remote hosts.)
Next: Password authenticated, Previous: Server requirements, Up: Remote repositories [Contents][Index]