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 :
-
Vérification de la présence de git et installation si nécessaire
- Création d’un compte utilisateur "storage" qui sera utilisé pour utiliser Sparkleshare
- Configuration du compte "storage" (en particulier des accès SSH, car tout se fait en SSH)
- 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-cryptoProject "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-cryptoTo 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é" :
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 *Après avoir validé, vous avez accès à votre répertoire (qui sera synchronisé avec tous les clients en temps réel).
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 :
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/dazzleModification 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.