01.18.08
Elle sèche ses fesses
(Ou SSHFS pour les intimes)
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-utilsetfuse-source(si vous utilisez un noyau custom) ; - pour sshfs,
sshfs.
La config de base, step by step:
- ouvrir un terminal ;
- se logguer en root (
su -); aptitude install fuse-utils sshfs(ça devrait aussi installerlibfuse2qui est une dépendance defuse-utils);- éventuellement
aptitude install fuse-source, puismodule-assistant build fuse, … (mais bon, ça vous avez l’habitude non?); - faire en sorte que les utilisateurs de l’ordinateur qui utiliseront FUSE/sshfs fassent partie du groupe fuse (
adduser leloginquivabien fuse); - é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:
-
loginest votre identifiant sur le serveur distant -
serverest le nom du serveur distant ou son adresse IP /chemin/du/dossier… facile
/point/de/montagel’endroit sur votre ordinateur où vous voulez trouver vos fichiers distants.-o idmap=userest 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 unls -ldans/point/de/montage…
sshfs login@server:/chemin/du/dossier /point/de/montage [ -o idmap=user ]
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