Tutoriel Linux : monter un répertoire distant avec sshfs

Le noyau Linux supporte un certain nombre de systèmes de fichiers divers et variés (ext2, 3, 4, NTFS, VFAT, etc.). Ce support se fait via des drivers dans le noyau, soit codés en dur et choisis au moment de la compilation du noyau, soit montés dynamiquement sous forme de modules chargeables.

Cependant en octobre 2005, à partir de la version 2.6.14 du noyau Linux, est apparue une fonctionnalité très intéressante : la possibilité donnée aux programmes en espace utilisateur de créer et monter leur propres systèmes de fichiers virtuels, sans avoir à écrire du code noyau.

Cette fonctionnalité, appelée Fuse pour Filesystem in userspace, a été créée par Miklos Szeredi. Cette approche visait à simplifier le développement de systèmes de fichiers, à améliorer la sécurité et la stabilité du système en isolant ces programmes en espace utilisateur, et à résoudre des problèmes de licence liés au développement de modules noyau. FUSE a d’abord été un projet séparé sur SourceForge avant d’être officiellement intégré au noyau Linux.

SSHFS grâce à Fuse

Une fois Fuse disponible sous Linux, beaucoup de programmeurs ont commencé à coder le support Fuse de beaucoup de systèmes de fichiers différents et innovants. Cette tâche de programmation n’est pas forcément aisée car les règles de code source à utiliser sont assez techniques (voir par exemple ce tutoriel en anglais, de l’université du nouveau Mexique).

Parmi ces systèmes de fichiers innovants dont le support à été programmé en utilisant Fuse, il y a SSHFS. Comme son nom l’indique, il permet de monter un répertoire distant dans l’arborescence locale en utilisant le tunnel ssh présent entre les deux machines comme canal de communication sous-jacent.

Installation et utilisation de sshfs sous Ubuntu

Il faut d’abord installer sshfs :

sudo apt install sshfs

Pour monter un répertoire distant donné, il faut taper dans le shell une commande de la forme :

sshfs [utilisateur@]hôte:[répertoire_distant] point_de_montage_local

Pour démonter le répertoire distant, on peut cliquer sur l’icône de démontage dans l’interface graphique gnome / nautilus ou taper dans le shell :

fusermount -u point_de_montage_local
Volume distant sshfs monté sous Ubuntu / gnome / nautilus

Limitations et considérations

SSHFS n’est pas recommandé pour les transferts de données volumineux ou les fichiers de grande taille . Son fonctionnement en espace utilisateur et le chiffrement SSH introduisent une latence supplémentaire . Dans certains cas, des transferts peuvent s’avérer très lents . Des optimisations (compression, réglages SSH) peuvent améliorer les performances .

Par défaut, les permissions locales sont ignorées ; seules les permissions côté serveur (déterminées par les identifiants de connexion) s’appliquent .

En conclusion, sshfs est un système de fichier très pratique à utiliser car il rend de grands services, mais il n’est pas adapté aux applications nécessitant des performances élevées ou aux transferts de données intensifs.

L’étude de son code source est très instructive pour apprendre à coder un système de fichier Fuse.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *