SSHFS

closeCet article a été publié il y a 16 ans 3 mois 1 jour, il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées.

En fait, il s’agit d’un cas d’utilisation de FUSE (Filesystem in User SpacE) avec SSH (Secure SHell).

Pour faire simple, FUSE permet de créer à un utilisateur non root de créer ses propres systèmes de fichier virtuels, pour accéder un peu à n’importe quoi: le contenu d’une image de CD, le contenu d’un dossier stocké sur un serveur distant.

Dans le cas qui nous intéresse, le but est d’accéder à un dossier distant accessible uniquement via SSH/SFTP, afin de travailler dessus comme si nous étions en local, sur notre cher ordinateur personnel fonctionnant sous Debian GNU/Linux (au moins la dernière version stable: Etch, avec un kernel Linux version 2.6.14 ou plus récent).

Paquets requis:

  • pour la partie FUSE (gérée par le kernel): fuse-utils et fuse-source (si vous utilisez un noyau custom) ;
  • pour sshfs, sshfs.

La config de base, step by step:

  1. ouvrir un terminal ;
  2. se logguer en root (su -);
  3. aptitude install fuse-utils sshfs (ça devrait aussi installer libfuse2 qui est une dépendance de fuse-utils);
  4. éventuellement aptitude install fuse-source, puis module-assistant build fuse, … (mais bon, ça vous avez l’habitude non?);
  5. faire en sorte que les utilisateurs de l’ordinateur qui utiliseront FUSE/sshfs fassent partie du groupe fuse (adduser leloginquivabien fuse);
  6. éventuellement, chargez le module fuse (modprobe fuse).

Et voilà!

Utilisation à la mano, en ligne de commande:

C’est assez simple, dans votre terminal il vous suffit de taper une commande dont le synopsis est:

    sshfs login@server:/chemin/du/dossier /point/de/montage [ -o idmap=user ]

  • login est votre identifiant sur le serveur distant
  • server est le nom du serveur distant ou son adresse IP
  • /chemin/du/dossier… facile 😉
  • /point/de/montage l’endroit sur votre ordinateur où vous voulez trouver vos fichiers distants.
  • -o idmap=user est utile uniquement si vos ID utilisateurs sont différents sur le serveur et votre machine, ça vous permet d’avoir un résultat lisible quand vous faire un ls -l dans /point/de/montage

Donc, par exemple, je peux faire sshfs guillaume@guillaume.theflyingbear.net:/home/guillaume/public_html ~/mon_site pour accéder dans le répertoire mon_site à ma p’tite page ouaib.
Plus dangereux, je peux faire sshfs root@un_serveur:/etc /qqpart pour accéder au répertoire /etc d’un serveur mal configuré 😉

Trucs et astuces (imaginez les bricol girls ou les garage babes vous l’annonçant, c’est plus sexy…)

sshfs vous demandera le mot de passe qui correspond à votre login sur le serveur distant à chaque fois que vous voudrez monter votre répertoire distant. Pour éviter cela, vous pouvez utiliser l’authentification par clef de SSH, en utilisant une clef sans phrase secrète (ssh-keygen(1) est votre ami)…

TODO

Utilisation de FUSE+sshfs avec mount et le le fichier /etc/fstab

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.