Installation d’un serveur Sparkleshare sur Debian et d’un client Sparkleshare sur Ubuntu

I. Serveur

Installation

Nous allons utiliser un assistant très pratique pour installer et configurer le serveur Sparkleshare. Cet assistant s’appelle dazzle. Pour l’obtenir, il suffit de lancer cette commande (en tant que root) :

curl https://raw.github.com/hbons/Dazzle/master/dazzle.sh –output /usr/bin/dazzle && chmod +x /usr/bin/dazzle

Une fois installé, vous devez utiliser la commande dazzle pour configurer le serveur :

dazzle setup

L’assistant effectuera toutes les actions nécessaires pour la mise en place de Sparkleshare :

  1. Vérification de la présence de git et installation si nécessaire

    1. Création d’un compte utilisateur "storage" qui sera utilisé pour utiliser Sparkleshare
    2. Configuration du compte "storage" (en particulier des accès SSH, car tout se fait en SSH)
    3. Rechargement du serveur SSH

    Note : À ce moment, j’ai eu une erreur avec mon serveur SSH. Il refusait de redémarrer et m’affichait l’erreur suivante :

    /etc/ssh/sshd_config line 93: Directive ‘AuthorizedKeysFile’ is not allowed within a Match block Il s’agit d’une erreur due aux lignes ajoutées par Sparkleshare à la fin du fichier /etc/ssh/sshd_config (utilisée pour l’accès SSH au compte "storage"). Après pas mal de recherches, je me suis rendu compte que l’erreur était due à la version de mon openssh-server. Sur ma Debian Squeeze, la version installée était la 5.5 (1:5.5p1-6+squeeze3). La configuration ajoutée par Sparkleshare n’est compatible qu’avec la version d’openssh-server 6.x.

    Pour remédier à ce problème, j’ai dû mettre à jour mon openssh-server via les dépôts testing de Debian (ce qui a nécessité une mise à jour du paquet libc6-dev) au passage. Cela a installé la version 6 (1:6.0p1-4) d’openssh-server et cela a résolu mon problème.

    Configuration

    Maintenant que mon serveur est installé, j’ai créé (toujours via dazzle) un répertoire destiné à accueillir mes données à synchroniser. Pour ce faire, il faut utiliser la commande suivante :

    dazzle create DOSSIER

    ou en crypté :

    dazzle create-encrypted DOSSIER_CRYPTE

    Voici le résultat de la commande :

  • Creating encrypted project "DOSSIER_CRYPTE"…
    -> /usr/bin/git init –bare /home/storage/DOSSIER_CRYPTE-crypto
    -> /usr/bin/git config –file /home/storage/DOSSIER_CRYPTE-crypto/config receive.denyNonFastForwards true
    -> echo "*.DMG -delta" >> /home/storage/DOSSIER_CRYPTE-crypto/info/attributes
    -> chown –recursive storage:storage /home/storage
    -> chmod –recursive o-rwx /home/storage/DOSSIER_CRYPTE-crypto

    Project "DOSSIER_CRYPTE-crypto" was successfully created.
    To link up a SparkleShare client, enter the following
    details into the "Add Hosted Project…" dialog:

    Address: ssh:// [email protected] _ip:mon_port
    Remote Path: /home/storage/DOSSIER_CRYPTE-crypto

    To link up (more) computers, use the "dazzle link" command. *

    On voit que le dossier est créé dans le répertoire /home/storage (qui est la homedir de notre utilisateur storage).

Voila, la partie serveur est presque terminée, il faudra faire une dernière action lors de la configuration de notre client mais nous verrons cela plus bas.

II. Client

Installation

Sparkleshare n’est pas officiellement packagé pour Ubuntu dans ses versions 10.04 jusqu’à 11.10 . Ceci dit, un dépôt PPA est disponible (compatible avec Ubuntu 10.04 -> 11.10). Il ne s’agit pas des dépôt officiels, aussi, installez-le en connaissance de cause. Vous devez l’ajouter et lancer l’installation grâce à ces commandes :

sudo add-apt-repository ppa:warp10/sparkleshare
sudo apt-get update
sudo apt-get install sparkleshare libwebkit1.1-cil git-core python-nautilus

Depuis la version 12.04 , tout est packagé de base, donc cette commande sera suffisante :

sudo apt-get install sparkleshare libwebkit1.1-cil git-core python-nautilus

Configuration

Le premier lancement du client vous permettra de renseigner quelques informations (nom, prénom, adresse mail) et vous affichera un petit tuto. Une fois passé cette présentation, il va falloir "relier" le client avec le serveur. Pour cela, récupérez le contenu du fichier présent dans le répertoire SparkleShare de votre homedir (il s’agit de la clé publique du client). Retournez sur le serveur puis lancez la commande suivante :

dazzle link

Après avoir appuyé sur Entrée, vous n’avez plus qu’à coller la clé publique de votre client, valider une dernière fois et le tour est joué.

Dernière étape, l’ajout du nouveau dépôt (le répertoire que nous avons créé ci-dessus) sur le client . Pour cela, il suffit de cliquer sur l’icône Sparkleshare de votre zone de notification puis "Ajouter un projet hébergé" :

spar1.png

Choisissez ensuite "on my own server" (notez que vous pouvez vous brancher sur des serveurs git publics tels que Github) puis renseignez l’adresse de votre serveur et le répertoire de destination (il s’agit des données que vous avez eu lors de la configuration du répertoire sur le serveur) :

  • Address: ssh:// [email protected] _ip:mon_port
    Remote Path: /home/storage/DOSSIER_CRYPTE-crypto *

    spar2.png

    Après avoir validé, vous avez accès à votre répertoire (qui sera synchronisé avec tous les clients en temps réel).

    spar3.png

    Note : Je n’ai pas testé les clients Mac et Windows mais je suppose que l’installation et surtout la configuration sont à peu près identiques.

    III. Conclusion

    Sparkleshare est un très bon logiciel . Les échanges sont chiffrés (via SSH), rapides, l’installation n’est pas trop difficile et c’est basé sur git. Malheureusement, le gros point noir qui est vraiment rédhibitoire pour moi c’est que je ne peux pas retrouver mes fichiers directement sur le serveur . Dans le fameux répertoire créé sur le serveur, tout est hashé, crypté, bref, complètement inutilisable :

    spar4.png

    Autrement dit, il faut obligatoirement avoir un client pour accéder aux données. Moi je voulais pouvoir avoir les données disponibles depuis les clients mais également directement sur mon serveur . Sparkleshare ne propose pas cela.

    C’est la raison pour laquelle je n’irai pas plus loin dans mon utilisation de cet outil. Il faut que j’en trouve un autre. Si vous avez des idées, faites-moi signe 🙂

Edit : Du coup, voici ce que j’ai fait pour supprimer Sparkleshare :

userdel storage
rm -rf /home/storage/
rm /usr/bin/dazzle

Modification du fichier /etc/ssh/sshd_config pour supprimer les liens avec /home/storage puis :

/etc/init.d/ssh reload

GIT reste installé sur le serveur mais ça c’est pas bien grave.