<h2>But de ce document</h2>
<p class="spip">Ce document me sert de mémo pour installer, configurer et utiliser le paquet « <strong class="spip"> sshfs </strong> » permettant de monter les partitions d’un serveur distant dans son propre système de fichiers. Cela permet d’ouvrir et d’enregistrer des fichiers sur votre serveur distant avec n’importe quelles applications.</p>

<p class="spip">J’ai testé ce mémo sur Debian Testing et Debian Sid, mais il doit pouvoir s’adapter aux autres distributions sans problème.</p>

<h2>Pré-requis</h2>
<p class="spip">Pour pouvoir monter un système de fichier via ssh, il faut bien évidemment disposer d’un serveur ssh opérationnel sur le le poste serveur et d’un client ssh sur le poste client.</p>

<p class="spip">Pour l’installation de ssh, vous pouvez suivre ce mémo : 
<br /></p>
<li> <a href="http://www.coagul.org/article.php3?id_article=168" class="spip_out">http://www.coagul.org/article.php3 ?id_article=168</a>
<h2>Présentation du projet fuse</h2>
<p class="spip">Le but du projet fuse est de faciliter le développement de nouveaux programmes permettant de monter toutes sortes de systèmes de fichiers distants (ssh, ftp, webdav,...)</p>

<p class="spip">Vous trouverez plus d’informations sur le site officiel : <a href="http://fuse.sourceforge.net/" class="spip_out">http://fuse.sourceforge.net/</a></p>

<p class="spip">Sur cette page, vous trouverez la liste des logiciels utilisant le système « <strong class="spip"> fuse </strong> » et permettant de monter tous types de systèmes de fichiers distant :
<br /></p>
<li> <a href="http://fuse.sourceforge.net/wiki/index.php/FileSystems" class="spip_out">http://fuse.sourceforge.net/wiki/index.php/FileSystems</a>
<p class="spip">Ce mémo sera consacré uniquement à l’utilisation du logiciel « <strong class="spip"> sshfs </strong> » reposant sur « <strong class="spip"> fuse </strong> » et permettant de monter des partitions distantes via ssh.</p>

<h2>Installation et configuration</h2>
<p class="spip">Installation du paquet :</p>

<p class="spip"><code class='spip_code' dir='ltr'># aptitude install sshfs   </code></p>

<p class="spip">Ce paquet installera en plus les dépendances suivantes : <strong class="spip">fuse-source fuse-utils libfuse2</strong></p>

<p class="spip">Dés l’installation du paquet, j’ai tenté sans succès un premier test avec la commande suivante</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code># sshfs toto@192.168.0.1:/home/toto /mnt<br />
toto@192.168.0.1's password:<br />
fusermount: failed to open /dev/fuse: No such file or directory</code></div>
<p class="spip">En fait, il faut commencer par charger le module fuse. C’est lui qui va créer ce device spécial :</p>

<p class="spip"><code class='spip_code' dir='ltr'># modprobe fuse</code></p>

<p class="spip">Pour charger le module automatiquement à chaque démarrage de l’ordinateur, il faut ajouter « <strong class="spip"> fuse </strong> » dans le fichier « <strong class="spip">/etc/modules</strong> »</p>

<p class="spip">Et ensuite, le montage fonctionne sans problème avec la commande suivante :</p>

<p class="spip"><code class='spip_code' dir='ltr'># sshfs utilisateur@serveur:/dossier /point_de_montage</code></p>

<p class="spip">exemple :</p>

<p class="spip"><code class='spip_code' dir='ltr'># sshfs toto@192.168.0.0.1:/home/toto /mnt</code></p>

<p class="spip">Il est désormais possible d’accéder aux fichiers depuis n’importe quelle applications.</p>

<p class="spip">Le démontage de la partition peut se faire avec les deux commandes suivantes :</p>

<p class="spip"><code class='spip_code' dir='ltr'># fusermount -u /mnt</code></p>

<p class="spip">ou (sous root uniquement) :</p>

<p class="spip"><code class='spip_code' dir='ltr'># umount /mnt</code></p>

<p class="spip"><strong class="spip">Remarque</strong> : Par défaut, seul l’utilisateur ayant effectué le montage peux accéder (et même voire) le point de montage. Pour autoriser tous les utilisateurs (attention à la sécurité) à accéder au point de montage, il faut ajouter l’option « <strong class="spip">allow_other</strong> », ce qui donne :</p>

<p class="spip"><code class='spip_code' dir='ltr'># sshfs toto@192.168.0.0.1:/home/toto /mnt -o allow_other</code></p>

<h2>Montage d’une partition en tant que simple utilisateur</h2>
<p class="spip">Pour monter une partition en tant que simple utilisateur, il faut effectuer quelques réglages, car cela ne fonctionne pas par défaut :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>$ sshfs toto@192.168.0.0.1:/home/toto /mnt<br />
toto@192.168.0.1's password:<br />
fuse: failed to exec fusermount: Permission denied</code></div>
<p class="spip">Il y a donc un problème pour exécuter  « <strong class="spip"> fusermount </strong> ». Un petit « ls », permet de le vérifier :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>$ ls -la /usr/bin/fusermount<br />
-rwsr-x--- 1 root fuse 18400 2006-06-14 00:55 /usr/bin/fusermount</code></div>
<p class="spip">Il faut donc ajouter votre utilisateur au groupe fuse :</p>

<p class="spip"><code class='spip_code' dir='ltr'># adduser toto fuse</code></p>

<p class="spip">Ensuite, il faut se reconnecter pour que le groupe soit pris en compte.</p>

<p class="spip">Et après c’est bon :-) :</p>

<p class="spip"><code class='spip_code' dir='ltr'>$ sshfs toto@192.168.0.0.1:/home/toto /mnt</code></p>

<p class="spip">Et pour démonter :</p>

<p class="spip"><code class='spip_code' dir='ltr'># fusermount -u  /mnt</code></p>

<p class="spip">La commande « <strong class="spip"> umount </strong> » ne fonctionne pas en tant que simple utilisateur car le point de montage n’est pas configuré dans « <strong class="spip">/etc/fstab</strong> » et je ne crois pas que ce soit possible.</p>

<h2>Éviter la saisie du mot de passe</h2>
<p class="spip">Pour éviter la saisie du mot de passe, il faut mettre en place un accès au serveur ssh par clé privée / clé publique. Cela dépasse le cadre de ce mémo, mais voici quand même les commandes permettant de faire cela :</p>

<p class="spip">Création de la clé privée et de la clé publique sur le poste client :</p>

<p class="spip"><code class='spip_code' dir='ltr'>$ ssh-keygen -t dsa</code></p>

<p class="spip">Envoi de la clé publique sur le serveur</p>

<p class="spip"><code class='spip_code' dir='ltr'>$ ssh-copy-id -i /home/toto/.ssh/id_dsa.pub toto@192.168.0.1" </code></p>

<h2>Montage automatique des partitions au démarrage de l’ordinateur</h2>
<p class="spip">Pour commencer, il faut savoir qu’il est possible de passer directement par « mount » pour monter une partition de type sshfs. Pour cela, il faut indiquer « fuse » comme système de fichiers et mettre « sshfs# » avant le nom et le serveur ssh. Voici un exemple :</p>

<p class="spip"><code class='spip_code' dir='ltr'>mount -t fuse sshfs#toto@192.168.0.0.1:/home/toto /mnt</code></p>

<p class="spip">La ligne suivante insérée dans « <strong class="spip">/etc/fstab</strong> », permet de monter automatiquement la partition au démarrage de l’ordinateur à condition que la clé privée de root soit autorisée sur le serveur distant et que le réseau soit actif lors du montage des partitions</p>

<p class="spip"><code class='spip_code' dir='ltr'>sshfs#toto@192.168.0.1:/home/totot /mnt fuse defaults 0 1</code></p>

<h2>Problèmes rencontrés</h2>
<p class="spip">Je n’ai pas rencontré de problème particulier, mais je trouve les temps d’accès assez longs lorsqu’on passe par Internet.</p>

<p class="spip">En utilisant Konqueror avec une URL de la forme suivante, nous arrivons au même résultat et avec des temps d’accès plus rapides mais malheureusement ce type d’URL n’est pas supporté par OpenOffice.org :</p>

<p class="spip"><code class='spip_code' dir='ltr'>fish://root@192.0.0.13/root</code></p>

<h2>Autres sources d’informations</h2>
<p class="spip">La page de man de « sshfs »</p>

<p class="spip">La FAQ officielle : <a href="http://fuse.sourceforge.net/wiki/index.php/SshfsFaq" class="spip_out">http://fuse.sourceforge.net/wiki/index.php/SshfsFaq</a></p>

<p class="spip">Ces deux articles sur le sujet : 
<br /></p>
<li> <a href="http://doc.ubuntu-fr.org/fuse" class="spip_out">http://doc.ubuntu-fr.org/fuse</a>
<br /><li> <a href="http://doc.ubuntu-fr.org/sshfs" class="spip_out">http://doc.ubuntu-fr.org/sshfs</a>
<h2>Historique des modifications</h2>
<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Version</strong></th><th scope='col'><strong class="spip">Date</strong></th><th scope='col'><strong class="spip">Commentaire</strong></th></tr></thead>
<tbody>
<tr class="row_even"><td>0.2</td><td>15/07/06</td><td>Création par Tony GALMICHE</td></tr>
<tr class="row_odd"><td> </td><td> </td><td> </td></tr>
</tbody>
</table>