SVN over SSH – Installation

Pré-requis:

  • distribution linux disposant de Subversion et ses outils
  • un compte et un groupe spécifique à Subversion sur le serveur(par exemple svn:svn)
  • sur le client, les outils Putty ( PAGEANT.EXE, PUTTYGEN.EXE) et TortoiseSVN

Installation :

  1. Créer des wrappers pour les commandes svn, svnadmin et svnserve sur le modèle :
    root@openbrick:~# more /usr/bin/svn
    #!/bin/sh
    umask 002
    /usr/bin/svn_real "$@"
  2. Créer un repository svn avec comme propriétaire svn:svn
    root@openbrick:~# svnadmin create /home/svn_root
    root@openbrick:~# chown -R svn:svn /home/svn_root
    root@openbrick:~#
  3. Ajouter le groupe svn aux utilisateurs ayant besoin d’un accès au repository
    root@openbrick:~# groups tonio
    tonio : tonio
    root@openbrick:~# adduser tonio svn
    root@openbrick:~# groups tonio
    tonio : tonio svn
    root@openbrick:~#
  4. Ajouter les droits dans l’arboresence du repository ( voir la documentation du format du fichier authz )
    Ajout de :
    ###
    [/]
    tonio = rw
    ###
    dans le fichier /home/svn_root/conf/authz pour donner tous les droits ( lecture / écriture à l'utilisateur tonio) dans l'ensemble de l'arborescence

Configuration du client ( TortoiseSVN / Putty ):

  1. Création d’une clé SSH ( fichiers de sortie mykey et mykey.pub et mot de passe passphrase ) :
    tonio@openbrick:~# ssh-keygen -b 1024 -t dsa -N passphrase -f mykey

    Enregistrement de la clé pour que le démon ssh la reconnaisse:

    tonio@openbrick:~# cp mykey.pub .ssh/authorized_keys
  2. Convertir la clé SSH au format putty grace à PUTTYGEN.EXE
    • Récupérer le fichier mykey généré ci-dessus depuis le serveur
    • Démarrer PUTTYGEN.EXE, choisir le menu “Conversion > Import key” et sélectionner le fichier mykey récupéré
    • Enregistrer la clé (‘Save private key’) au format putty, clé qui sera ajouté dans PAGEANT.EXE
  3. Configurer TortoiseSVN :
    • Aller dans les options Tortoise ( clic droit dans un dossier > TortoiseSVN > Settings )
    • Dans la partie Network, spécifier le client SSH. On peut choisir le programme PLINK.EXE livré avec Putty, ou alors le programme TortoisePlink.exe (à choisir de préférence) livré avec TortoiseSVN
    • Configurer l’url du repository dans TortoiseSVN du type “svn+ssh://tonio@openbrick/home/svn_root/projet1”

Et voilà …
D’après les documentations :

Outils :

Explications sur les wrappers :
Il est bon de rappeler qu’en mode SVN over SSH, il n’y a pas de serveur, les mises à jour du repository se font directement sur le système de fichiers ( chapitre 6, paragraphe Overview du SVN-Book ). D’où la nécessité d’avoir un groupe spécifique svn et que l’ensemble du groupe puisse effectuer des modifications sur l’arborescence durepository.