SSHFS est, comme son nom l'indique, un système de fichier utilisant le protole SSH. En fait, il permet d'accéder à ses fichiers stockés sur un serveur distant via le protocole SSH de façon transparent, via un simple répertoire.

Quelques liens pour en savoir plus :

Utilisation dans le cadre AUF

L'idée est de proposer un accès simplifié à leurs fichiers à nos utilisateurs nomades, c'est-à-dire à ceux qui disposent d'un ordinateur portable sur Ubuntu1. Pour les postes fixes, NFS reste nettement plus performant.

Pour que cet accès reste simple et néanmoins bien sécurisé :

OpenVPN. Un effet secondaire agréable est qu'OpenVPN solutionne le problème des adresses IP changeantes pour un client sur une liaison type ADSL.

Note bien : il ne faut pas ouvrir ce service directement sur Internet. On se le permet pour la messagerie car le contenu est réputé plus volatile et les utilisateurs sont censés le savoir aujourd'hui. Pour leurs fichiers, c'est différent, il peut s'agir de projets en cours, de données beaucoup plus confidentielles qu'il ne s'agit surtout pas de se faire pirater ! En outre, le tracé de l'activité de ce service est délicat, on ne pourra pas détecter et prouver une usurpation comme on peut le faire avec la messagerie. Si vous voulez rendre l'accès aux fichiers disponible depuis n'importe quelle machine sur Internet, ajoutez d'abord une couche de connexion au réseau privé, via OpenVPN.

Préliminaire : configuration au niveau SSH

L'utilisateur doit avoir un compte accessible en SSH sur le serveur sur lequel se trouve ses données. L'accès SSH ne doit être possible que par clé (pas d'authentification par mot de passe). Cependant pour éviter que l'utilisateur ne doive entrer le mot de passe de sa clé privée à chaque montage, on la crypte avec le même mot de passe que pour son compte et on utilise libpam-ssh. La clé sera donc disponible dans l'agent SSH dès la connexion de l'utilisateur (voir explications sur la page de SSH).

Notes :

Installation et test de SSHFS

  1. Installation :
    # aptitude install sshfs
  2. SSHFS utilisant FUSE, il faut que l'utilisateur ait accès à FUSE. Sur Ubuntu il suffit de l'ajouter au groupe correspondant (voir ici pour le faire de façon générique) :

    # adduser utilisateur fuse
  3. Test, depuis le compte de l'utilisateur :
    $ mkdir serveur               
    $ sshfs bao.sn.auf: serveur   <---- on monte le HOME de bao.sn.auf sur le répertoire serveur
    $ ls serveur                  <---- doit afficher les fichiers de bao.sn.auf:~
  4. Vérifiez les droits, la navigation dans les fichiers, les liens symboliques, etc...
  5. Démontage :
    $ fusermount -u serveur

Automatisation du montage

  1. On indique au système le point de montage :
    # (... extrait de /etc/fstab ...)
    sshfs#bao.sn.auf:    /sshfs/ServeurBAO       fuse    user,noauto,sshfs_debug,nonempty,compression=yes,reconnect 0 0
  2. On créée le point de montage :
    mkdir -p /sshfs/ServeurBAO
    chown root:fuse /sshfs/ServeurBAO
    chmod 770 /sshfs/ServeurBAO

Et c'est tout ! A partir de là, un système de fichier ServeurBAO sera visible dans Nautilus, mais aussi dans les fenêtres de dialogue de Gnome. De plus, un icône disque ServeurBAO s'affichera sur le bureau lors du montage.

Note 1 : pour que les choses soient bien automatiques, idéalement il faut que l'utilisateur ait un login identique sur son poste et sur le serveur. Sinon il faut modifier la ligne du /etc/fstab et la faire commencer par sshfs#login_sur_serveur@bao.sn.auf:. Mais dans ce cas, le système ne fonctionnera que pour cet utilisateur donné, c'est un peu moins élégant comme solution.

Note 2 : on ne passe pas par la solution Se connecter à un serveur... disponible dans Gnome. En effet celle-ci se base sur Gnome et les fichiers ne sont alors disponibles que pour les applications Gnome qui utilisent Gnome-VFS. Avec la solution /etc/fstab, toutes les applications pourront accéder au partage sshfs. Pour aider l'utilisateur avec ses applications on peut éventuellement ajouter un lien symbolique sur son répertoire personnel vers /sshfs/le_repertoire_partagé.

Ca ne marche pas ? C'est normal !

Malheureusement, gnome-vfs est un peu buggué au niveau du lancement du montage SSHFS. Pour une sombre histoire de tty, le montage est effectué... puis tué aussitôt ! Pour corriger cela, on peut mettre en place une solution de surcharge de sshfs insensible aux signaux HUP :

Ca marche enfin, la preuve

nautilus.png ouvrir.png icone-bureau.png


Notes de bas de page :

  1. ou MacOS X, mais bon. Pour windows, voir winscp et ses amis. (1)