CVS no permite el envio de contraseñas cifradas, y eso a jorginius no le hacía mucha gracia. Estuvimos buscando soluciones y las que encontramos no nos gustaban. Unas necesitaban perl, otras python y la clasica (usar ssh) necesitaba cuentas reales en el servidor. Al final decidimos tunelar cvs mediante SSL con stunnel (que ademas tiene version para windows).
El esquema, mas o menos es:
cvs cliente -> stunel cliente ->stunel servidor -> cvs servidor
Empezemos por el final. El servidor cvs se configura tal y como explico Iñaki Arenaza e Ismael Olea.
Ahora vamos a poner el stunnel en el servidor. Stunnel escucha en el puerto que le digamos y redirige lo que le llega a la maquina que le digas y al puerto que le digas. Como se hace eso?.
/usr/sbin/stunnel -d 2045 -r IP_LOCAL:2401
Eso recibe por el puerto 2045 y reenvia al 2041, puerto donde tenemos el servidor de cvs.
Ahora, en el cliente debemos usar stunnel. Lancemos stunnel tal que:
stunnel -c -r IP_DONDE_ESTA_EL_CVS:2045 -d 2041
¿Esto que hace? RTFM ;))). -c indica que lanzamos el stunnel en modo cliente y el -d indica el puerto local. Elegimos 2045 por que es donde esta el stunnel en el otro lado escuchando.
Ahora ejecutamos el cliente de cvs:
export CVSROOT=":pserver:anoncvs@localhost:$DIRECTORIO_DEL_CVS"
cvs login
Como se puede ver, nos conectamos en local, para que stunnel redirija todo el trafico cifrado hacia el otro lado del tunel.
Umm, y con esto y un bizcocho, nos despedimos a la espera de alguna critica sobre esta entradilla en el diario :)