Comme expliqué dans la page WikiNi:LinuxCVS, il faut commencer par générer une clef RSA (et non DSA) afin de la placer sur le serveur Gna! à la page Mes préférences: Modifier vos clefs publiques [Gna!] :

$ ssh-keygen -t rsa
[...]
$ less ~/.ssh/id_rsa.pub
ssh-rsa [...] user@localhost

On copie la clef entière dans un des champs réservés aux clefs. Ensuite il faut dire à CVS d'utiliser SSH pour le cryptage des communications. Le mieux est d'éditer ~/.bashrc et d'ajouter au début les lignes suivantes :

# use SSH for CVS communications
export CVS_RSH=ssh

Ceci permet normalement d'accéder en tant que développeur au dépôt. Pour tester, une fois que Gna! a mis à jour sa liste des clefs, on peut faire une petite exportation :

$ mkdir temp
$ cd temp/
$ cvs -d moncompte@cvs.gna.org:/cvs/wikini co wikini
Enter passphrase for key '/home/.../.ssh/id_rsa':
[...]
$ ls wikini/

L'inconvénient est que SSH demande à chaque commande CVS la passphrase de la clef, ce qui est vite agaçant quand c'est réellement une phrase. Il faut alors utiliser ssh-agent. Sous les Debian et dérivées, il faut vérifier que le fichier /etc/X11/Xsession.options contient bien use-ssh-agent :

$ grep ssh /etc/X11/Xsession.options
use-ssh-agent

Il suffit alors de lui dire d'utiliser les clefs qu'il trouvera automatiquement dans ~/.ssh :

$ ssh-add
Enter passphrase for /home/.../.ssh/id_rsa:
Identity added: /home/.../.ssh/id_rsa (/home/jm/.ssh/id_rsa)
Identity added: /home/.../.ssh/id_dsa (/home/jm/.ssh/id_dsa)

Cette commande mémorise la passphrase pour le reste de la session et pour toutes les applications qui le demanderont. Dans Cervisia on n'a ainsi plus besoin non plus de taper ce long mot de passe pourvu qu'on ait bien déclaré le dépôt Gna! en protocole ext utilisant SSH.