SSHFS

 

SSH File System

SSHFS permet de monter un système de fichier distant, sur son propre système de fichier.

La connexion, se faisant par SSH, est donc sécurisée (cryptage SSL + identification des machines par certificats).

L’avantage de sshfs est donc de manipuler aisément des données distantes avec n’importe quel programme et gestionnaire de fichiers (nautilus par exemple).


1°) Installation :

Toujours aussi simple, en passant par les paquets :

sudo apt-get install sshfs

Ou, sinon, en passant par la compilation : il faut d’abord compiler FUSE (Filesystem in Userspace), disponible sur sourceforge,  puis compiler sshfs (aussi sur la forge).

La démarche est toujours la même :

  1. ./configure
  2. make
  3. sudo make install

2°) Mise en place :

Les utilisateurs de sshfs doivent faire partie du groupe fuse, sous peine de recevoir l’erreur suivante : »failed to open /dev/fuse: Permission denied »

sudo adduser nom_user fuse

Il faut ensuite créer un point de montage pour monter le système de fichier distant. Un point de montage n’est rien d’autre qu’un simple répertoire. Le fait de « monter » une partition sur ce répertoire permet d’accéder à l’ensemble des fichiers de la partitions à travers ce répertoire, alors appelé « point de montage ».

Par convention, on le créé dans /mnt ou /media (selon la distribution) :

sudo mkdir /media/mon_fs_distant 

Le répertoire ayant été créé avec sudo, il appartient à root, on change donc son propriétaire afin qu’il appartienne à votre utilisateur :

sudo chown nom_user  /media/mon_fs_distant 

 3°) Montage d’un système de fichier distant :

 Le montage se fait par la commande suivante :

sshfs user_distant@machine_distante:repertoire_distant /point/de/montage 
  •  user_distant est le compte utilisateur sur la machine distante.
  •  machine_distante est soit l’ip de la machine, soit le dns associé, plus facile à retenir.
  •  repertoire_distant est le répertoire à monter. Il est facultatif, mais pas contre pas le « : » qui précède ! Si on n’indique pas le répertoire, ce sera par défaut le home de l’utilisateur_distant qui sera monté. Par exemple, pour monter la totalité du filsystem, il suffit donc de mettre « /« .
  • /point/de/montage estle point de montage à utiliser.

La commande  » sshfs toto@10.193.224.167:/ /media/camera  » permet donc de monter l’ensemble du système de fichier de la machine 10.193.224.167 dans le répertoire /media/camera.

Comme c’est fastidieux de taper tout ça à chaque fois, un alias dans le ~/.bashrc est le bienvenu : 

export camera=’10.193.224.167′
alias monter_camera=’sshfs toto@$camera:/ /media/camera’

4°) Démontage d’un système de fichier distant :

Il suffit de taper « fusermount -u /point/de/montage » pour démonter le système de fichier. La encore un alias est ce qu’il y a de plus simple :

alias demonter_camera=’fusermount -u /media/camera’

5°) Interactions  :

Une fois que le système est monté, on peut interagir sur les fichiers distants comme s’ils étaient en local. Il est alors possible d’éditer avec gedit, écouter les mp3 avec rhythmbox, naviguer avec nautilus… 

Par contre il y a un bug dans sshfs qui fait que le drag and drop ne marche pas dans le sens système_local -> système distant. (mais il marche dans l’autre sens, pour rapatrier des fichiers).

Du coup, le plus simple reste de travailler avec cp en console : « cp mon_fichier /point/de/montage/chemin/où/copier » va donc copier le fichier sur le système distant par ssh, de façon transparente.

C’est un bug connu, qui devrait être résolu sous peu.

 

 

Laisser un commentaire

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