Distribué par le projet Fr.OpenOffice.org

Utilisation de SSH et de CVS pour travailler sur le site de OpenOffice.org

Révision 0.4 du 03/09/04

Réalisé avec : OOo 1.1.2	Plate-forme / Os : Toutes

Table des Matières

1 But de ce document	3

2 Vérifier si les clients SSH et CVS sont installés	3

3 Création d'une clé privée et d'une clé publique pour SSH	3

4 Connexion au serveur SSH	3

5 Connexion au serveur CVS	4

6 Utilisation de CVS	4

6.a Initialiser la variable CVSROOT	4

6.b Établir le tunnel SSH.	4

6.c Se connecter au serveur CVS	4

6.d Récupérer en local une partie de l'arborescence du serveur	4

6.e Récupérer les dernières mises à jour et comparer la partie serveur et client	4

6.f Modification d'un fichier	5

6.g Ajouter un fichier ou un dossier	5

6.h Supprimer un fichier ou un dossier	5

6.i Renommer un fichier ou un dossier	5

6.j Connaître l'historique des modifications d'un fichier	6

7 Crédits	7

8 Licence	7

But de ce document

J'ai réalisé ce document pour expliquer comment configurer ssh et cvs pour se connecter au serveur d'OpenOffice.org dans le but de le mettre à jour (actualiser les zip tous les mois).

Je ne suis pas un spécialiste de ssh et de cvs mais ce document me sert uniquement de mémo pour avoir sous la main toutes les commandes nécessaires à ce travail.

Ce document explique comment utiliser ssh et cvs en ligne de commande sous Linux, mais il est également possible d'utiliser ssh et cvs sous Windows avec par exemple « Cygwin » et « WinCvs ».

J'ai choisi d'utiliser cvs en ligne de commande car j'ai réalisé un script bash qui permet d'automatiser la création des zip et l'envoie sur le serveur cvs, ce qui n'aurait pas été possible avec « WinCvs ».

Vérifier si les clients SSH et CVS sont installés

La commande « ssh -V » permet de connaître la version de SSH installée. Le client SSH est fourni (sous Mandrake) avec le paquet « openssh-clients »

La commande « cvs -v », permet de connaître la version de CVS installée. Le client CVS est fourni avec le paquet « cvs »

Création d'une clé privée et d'une clé publique pour SSH

L'utilisation d'une clé permet de crypter les communications entre le client SSH et le serveur.

Pour comprendre le principe, la clé publique peut être comparée à une serrure et la clé privée à la clé. Pour que la communication fonctionne, il faut que la clé reconnaisse la serrure.

Procédure pour créer la clé privée et la clé publique :

Saisir la commande « ssh-keygen -t dsa »

Ne pas saisir de nom de fichier (Dans ce cas, les fichiers « id_dsa » et id_dsa.pub », seront placés dans le dossier « .ssh » du profil de l'utilisateur)

Ensuite, il faut saisir une passphrase, qui est le mot de passe qui va protéger la clé.

Le fichier id_dsa.pub (la clé publique) devra être placé du coté serveur pour que la communication fonctionne.

Il est possible de changer la passphrase à tout moment, même une fois que la clé publique est placée sur le serveur (Cette méthode permet également de vérifier si la passphrase est correcte dans le cas où l'on n'en est pas sûr....) :

Saisir la commande « ssh-keygen -t dsa -p »

Ne pas saisir de nom de fichier (Dans ce cas, le fichier « id_dsa » placé dans le dossier « .ssh » du profil de l'utilisateur sera utilisé).

Ensuite, il faut saisir l'ancienne passphrase et deux fois la nouvelle.

Connexion au serveur SSH

La commande suivante « ssh -2 -x -L 2401:localhost:2401 tunnel@openoffice.org » , permet de se connecter via SSH au serveur de OpenOffice.org

Lors de la connexion, la « passphrase » est demandée, et une fois la connexion établie, il doit s’afficher « Tunnel established. Type ctrl-c to exit ».

A partir de là, il est possible d'ouvrir une nouvelle console (sans fermer celle de la connexion ssh) pour utiliser CVS.

Une fois le travail terminé, il faudra revenir sur cette console et faire « CTRL + C » pour couper la connexion.

Connexion au serveur CVS

Pour utiliser CVS, il faut déjà avoir créé un compte sur le site de OOo (C'est le compte qui permet par exemple de créer des issues sur IZ).

Une fois la connexion SSH établie, il est possible dans une autre console de se connecter au serveur CVS, avec la commande « cvs -d:pserver:{LeLoginDeOOo}@localhost:/cvs login »

Ensuite, il faut saisir le mot de passe correspondant.

Une fois la connexion établie, la commande redonne la main et il est possible d'utiliser toutes les commandes de CVS.

Utilisation de CVS

Initialiser la variable CVSROOT

La variable CVSROOT contient le login et le type de connexion pour CVS. Il est impératif de l'initialiser manuellement ou dans le profil utilisateur (ex : /home/[user]/.bash_profile) avant de pouvoir utiliser cvs. Dans la commande ci-dessous, il faut remplacer « tonygalmiche » par votre login de connexion au site de OOo.

export CVSROOT=:pserver:tonygalmiche@localhost:/cvs

Établir le tunnel SSH.

Une fois la connexion établie, le terminal reste monopolisé, et il faut donc en ouvrir un autre pour continuer avec cvs :

ssh -2 -x -L 2401:localhost:2401 tunnel@openoffice.org

Se connecter au serveur CVS

Cette commande n'est plus nécessaire par la suite car un fichier « .cvspass » est créé dans le home de l'utilisateur et contient le mot de passe pour accéder à CVS. Ce fichier sera utilisé par CVS pour toutes les autres commandes.

cvs login

Récupérer en local une partie de l'arborescence du serveur

IMPORTANT : Se placer dans le dossier devant recevoir les données. Exemple :

cd /SAMBA/CVS

Une fois l'arborescence récupérée, on peut constater que chaque sous-dossier en local contient un sous-dossier « CVS » qui contient des informations sur le contenu du dossier et sert de référentiel au système pour comparer la partie serveur et la partie client.

cvs -z3 checkout fr/www/Documentation

ou cvs -tz3 checkout fr/www/Documentation (l'option « t » permet d'avoir plus de détails)

Récupérer les dernières mises à jour et comparer la partie serveur et client

IMPORTANT : Il est obligatoire de se placer dans le dossier sur lequel on veut travailler, car cette commande comme les suivantes, utilise les informations contenues dans le sous-dossier « CVS ».

cd fr/www/Documentation/zip

Ensuite, il est possible de récupérer les dernières mises à jour, si le checkout date un peu. En fait, cette commande récupère les dernières mises à jour du serveur et envoie aussi les mises à jour locales sur le serveur pour effectuer une comparaison.

ATTENTION : Si les fichiers en local sont différents de la partie serveur, ceux-ci seront envoyés sur le serveur uniquement pour effectuer la comparaison mais sans modifier la partie serveur. Le problème est qu'il faut limiter l'utilisation de cette commande avec de gros fichiers (ex : fichiers zip), car le temps d'attente et aussi long voire plus long que lors du « cvs -z3 checkout »

cvs update

ou cvs -t update (pour avoir plus d'informations sur le travail en cours)

ou cvs update -P (pour ne pas récupérer les dossiers vides ou supprimés)

Modification d'un fichier

Il faut déjà effectuer la modification de l'arborescence locale et ensuite exécuter cette commande, pour appliquer la modification sur la partie serveur :

cvs commit -m "Commentaire sur le fichier modifié" NomDuFichierModifié

Il est possible de ne pas indiquer le nom du fichier modifié et dans ce cas, cvs effectuera une mise à jour de tous les fichiers modifiés du dossier courant et de tous ses sous-dossiers.

cvs commit -m "Commentaire sur les fichiers modifiés"

Ajouter un fichier ou un dossier

Il faut déjà ajouter le fichier dans l'arborescence locale et ensuite exécuter cette commande, pour ajouter le fichier sur le serveur :

cvs add NomDuFichierAjouté (pour un fichier texte, source, html...)

cvs add -kb NomDuFichierAjouté (pour un fichier binaire, zip, OOo...).

Si le switch kb a été oublié pour le type binaire, il est possible d'utiliser la commande suivante. Si cette commande ne fonctionne pas, il faut supprimer et recréer le fichier :

cvs admin -kb NomDuFichierAjouté

Ensuite, il faut toujours effectuer cette commande pour appliquer les modifications :

cvs commit -m "Commentaire sur le fichier ajouté" NomDuFichierAjouté

Il est possible aussi de ne pas indiquer le fichier pour prendre en compte toutes les modifications :

cvs commit -m "Commentaire sur les fichiers ajoutés ou modifiés"

REMARQUE : Il est possible avec la même méthode d'ajouter un dossier.

Supprimer un fichier ou un dossier

Il faut déjà supprimer le fichier dans l'arborescence locale et ensuite exécuter cette commande, pour supprimer le fichier sur le serveur :

cvs delete NomDuFichierSupprimé

Et ne pas oublier de faire :

cvs commit -m "Commentaire sur le fichier supprimé" NomDuFichierSupprimé

Ou ne pas indiquer le fichier pour prendre en compte toutes les modifications :

cvs commit -m "Commentaire sur les fichiers modifiés, ajoutés ou supprimés"

REMARQUE : Il est possible avec la même méthode de supprimer un dossier. Mais avec cvs un dossier n'est jamais complètement supprimé et il est possible qu'il continue à apparaître lors du prochain « cvs -z3 checkout ».

Renommer un fichier ou un dossier

Il n'est pas possible avec CVS de renommer des fichiers ou des dossiers. Pour cela, Il est nécessaire de les supprimer et de les recréer.

Connaître l'historique des modifications d'un fichier

Il est possible de connaître l'historique de toutes les modifications d'un fichier en se plaçant dans le dossier contenant ce fichier et avec la commande :

cvs history NomDuFichier

Crédits

Auteur : Tony GALMICHE

Remerciements :

Merci à Sophie Gautier pour la patience qu'elle a eue pour supporter les nombreux mails que je lui ai envoyés en privé pour arriver à me connecter au site et pour faire fonctionner SSH+CVS.

Merci à Laurent Godard pour la relecture de ce document.

Intégré par : Sophie GAUTIER

Dernière modification : 03.09.04

Contacts : Projet Documentation OpenOffice.org - Fr.OpenOffice.org

Traduction :

Licence

Appendix

Public Documentation License Notice

The contents of this Documentation are subject to the Public Documentation License Version 1.0 (the "License"); you may only use this Documentation if you comply with the terms of this License. A copy of the License is available at http://www.openoffice.org/licenses/PDL.html.

The Original Documentation is ''Utilisation de ssh et cvs pour travailler sur le site OOo''. The Initial Writer of the Original Documentation is Tony GALMICHE Copyright (C) 2003. All Rights Reserved (Initial Writer contact: tony.galmiche@tiscali.fr or tonygalmiche@openoffice.org ) .

Contributor(s): ______________________________________.

Portions created by ______ are Copyright (C)_________[Insert year(s)]. All Rights Reserved. (Contributor contact(s):________________[Insert hyperlink/alias]).

NOTE: The text of this Appendix may differ slightly from the text of the notices in the files of the Original Documentation. You should use the text of this Appendix rather than the text found in the Original Documentation for Your Modifications.

Utilisation1_ssh_cvs

Fr.OpenOffice.org	OpenOffice.org Documentation Project How-To	7 / 7

Sophie Gautier

2003-12-27T18:24:14