Introduction:
Cet article présente l'utilisation de l'outil: sshfs.
Il permet de monter un système de fichier distant à travers une connexion SSH.
Autrement dit, il est possible de travailler sur les fichiers d'une machine distante comme si ils étaient sur la machine locale.
On profite également du chiffrement apporté par le protocole SSH.
Pré-requis:
Vérification de la présence du module FUSE
Tout d'abord, il faut vérifier le support du module FUSE par votre noyau.
Pour cela, ouvrez le fichier
/boot/config-xxx correspondant à la version du noyau en exploitation.
Dedans, vous devriez trouver la ligne:
CONFIG_FUSE_FS=m
Sinon, il va vous falloir soit recompiler votre noyau en ajoutant le support de FUSE, soit vous servir de votre gestionnaire
de paquetage habituel (apt-get, yum...) pour trouver un module déjà pré-compilé.
Compilation du module (sur noyau de série 2.6.x):
Le but de cet article n'est certainement pas de parler d'une compilation de noyau Linux,
je me limiterais donc à montrer où se trouve l'option.
Vous la trouverez donc dans:
+File systems
+Filesystem in Userspace Support |
|
Illustration: Support de FUSE en module |
Activation du module FUSE:
Pour activer le module, il suffit simplement de faire la commande suivante:
modprobe fuse
Ensuite si vous désirez rendre cette opération systématique au redémarrage de la machine,
il suffit de rentrer
fuse dans le fichier:
/etc/modules.
Installation:
Lorsque la machine est prête, il ne reste plus qu'à lancer l'installation à l'aide de la commande (sous Debian):
apt-get install sshfs
(Les dépendances de sshfs seront également installées: libfuse2, fuse-utils, libc6 et libglib2)
Utilisation:
Monter un système de fichier distant
L'outil sshfs est maintenant fonctionnel. Pour s'en servir, il suffit de taper la commande:
sshfs user@hôte_distant:/répertoire/distant/ /répertoire/local/
user |
: |
nom d'utilisateur sur la machine distante. |
hôte_distant |
: |
adresse FQDN ou IP de la machine distante. |
/répertoire/distant/ |
: |
Répertoire distant que l'on veut monter (en partant de la racine). |
/répertoire/local/ |
: |
Répertoire local où l'on veut monter le système de fichier. |
Démonter le système de fichier
Pour démonter le système de fichier distant, il faut simplement taper:
umount /point/de/montage/
Scripter la connexion
Il existe plusieurs manières de procéder pour monter automatiquement la cible au déammarrage du poste.
Nous le ferons tout bêtement avec un script bash. Pour cela, il suffit de créer un fichier nommé:
S90sshfs (par exemple) dans le répertoire: /etc/rc2.d/ (sous Debian en mode console).
Dans ce fichier, nous pourrons mettre tout simplement:
#!/bin/bash
sshfs user@hôte_distant:/répertoire/distant/ /répertoire/local/
|
Rendre transparente l'authentification
Le problème maintenant est que l'authentification SSH n'est pas automatique donc notre script ne pourra pas s'achever sans interventions
humaines.
Pour cela, on doit générer une paire de clé sur la machine cliente (celle sur laquelle l'on veut monter le répertoire distant)
à l'aide de la commande:
ssh-keygen -t dsa
Avant de générer les deux clés, l'assistant demandera une "Passphrase" qu'il faut laisser vierge si l'on veut justement
éviter de rentrer un mot de passe.
Une fois cette opération faite, il faut récupérer la clé publique générée qui se trouve alors dans le fichier
$home/.ssh/id_dsa.pub ($home étant le chemin vers votre répertoire utilisateur) pour la placer sur le poste distant dans
le fichier
$home/.ssh/authorized_keys2 précédé de:
from="ip" (ou
ip correspond à l'adresse
FQDN du poste local ou à son adresse IP).
Pour aller plus loin:
Bien sûr en tout premier lieu, je vous invite à découvrir le manuel de sshfs (
man sshfs).
Le site officiel de FUSE |
(US) |
: |
ici |
Tutorial Ubuntu-fr |
(FR) |
: |
ici |
sur ce sujet.