[Ubuntu] Monter un répertoire distant en SFTP avec SSHFS

Disposant à la maison d’un serveur à tout faire (NAS pour stockage + petit serveur Web et FTP), je me suis retrouvé face à la problématique suivante : comment monter des répertoires distants via SFTP ? En effet, /etc/mtab ne voit pas la connexion et passer par Nautilus –> Aller à –> Emplacement puis recopier l’adresse ne me plaisait guère pour monter de manière ergonomique le répertoire. De plus, ce n’est pas automatisable comme tâche. On va donc y remédier !

J’ai donc cherché et je suis tombé sur un outil fort sympa : SSHFS (Pour Secure SHell File System – Système de fichiers à travers SSH). Cet outil est disponible par défaut dans les dépôts d’Ubuntu (et apparemment de pas mal d’autres distributions, d’après mes lectures) et utilise lui-même FUSE (NTFS-3G par exemple est également basé sur FUSE). Voilà donc un petit tutoriel sur la mise en place de SSHFS sur votre machine. Avant tout, installez les paquets nécessaires, ajoutez VOTRE utilisateur au groupe FUSE et redémarrez dans la foulée – c’est obligatoire, sans quoi vous aurez des erreurs de permissions :

sudo apt-get install sshfs fuse-utils
sudo adduser $USER fuse
sudo reboot

Si vous voulez autoriser d’autres users que vous à utiliser Sshfs, remplacez $USER par les users en question. Ensuite, subtilité que j’avoue ne pas avoir saisi, mais vu que sans ça cela ne marche pas, eh bien on va s’en contenter : il faut modifier le fichier de configuration de fuse et dé-commenter la ligne « user_allow_other« 

sudo gedit /etc/fuse.conf

La ligne « #user_allow_other » doit donc devenir « user_allow_other » On va désormais choisir un répertoire dans lequel on pourra monter notre répertoire distant. Pour ma part, j’ai choisi /media/server/. De cette manière, j’ai le répertoire du serveur à coté de mon répertoire de données. Ensuite, il convient de connaître le chemin complet du répertoire auquel on compte accéder. Pour ma part, c’était thomson@88.***.***.**:/media/Donnees. On fait bien attention au double-point entre le host et le répertoire distant à monter ! Enfin, on monte le répertoire avec la commande qui va bien :

sshfs -o allow_other thomson@88.***.***.**:/media/Donnees /media/server/

Eh voila, le répertoire distant est bien monté en local à l’endroit voulu !

Votre mot de passe pour la connexion vous est demandé. Quant à l’argument « -o allow_other« , il est obligatoire et fait référence à la configuration de Fuse qu’on a vu plus haut. Voila, désormais, votre répertoire est normalement monté. Un simple « ls /media/server » devrait le confirmer. À propos de l’automatisation de la tâche, je ne m’y suis pas intéressé étant donné que je ne compte monter le répertoire que ponctuellement. Cela doit tout à fait être réalisable en ajoutant la commande à /etc/rc.local, qui se lance à chaque démarrage. J’ai préféré créer un alias du bash de mon côté. Pour ce faire, modifiez le fichier .bashrc

sudo gedit ~/.bashrc

Cherchez le groupe d’alias déjà présent (vous pouvez théoriquement écrire un alias partout, mais autant les laisser groupés, non ?) et ajoutez-y la ligne :

alias SFTP='sshfs -o allow_other thomson@88.125.180.22:/media/Donnees /media/server/'

Sauvegardez, puis relancer le terminal. En écrivant « SFTP » dans le bash, il lancera automatiquement la commande liée, donc montera votre répertoire. Sachez que par défaut, aucune commande Linux ne commence par ou ne contient une majuscule, donc prenez des alias court et entièrement en majuscule pour vous en rappeler simplement et utilisez l’auto-complétion à bon escient.

Mon .bashrc avec quelques autres commandes

Source : Image 1