SSHFS – un point de montage sécurisé via SSH

SSHFS (SSH Filesystem) est un système de fichiers client pour Linux qui permet de monter un répertoire distant sur un serveur local, en utilisant une connexion SSH sécurisée. Il offre une manière simplifiée d’accéder à des fichiers sur un serveur distant sans avoir besoin de configurations réseau complexes.

Installation et Configuration

Installation

  • Sur Ubuntu/Debian :
    bash sudo apt-get install sshfs
  • Sur Fedora :
    bash sudo dnf install fuse-sshfs
  • Sur CentOS/RHEL :
    bash sudo yum install epel-release
    sudo yum install sshfs

Note : sous Windows, vous pouvez utiliser rclone

Configuration de groupe

Il est recommandé d’ajouter votre utilisateur au groupe fuse pour permettre l’utilisation de SSHFS sans privilèges super-utilisateur.

   sudo usermod -aG fuse $USER

Utilisation

  1. Montage :
    Pour monter un répertoire distant, utilisez la commande suivante :
   sshfs user@remote:/path/to/remote/directory /path/to/local/mountpoint
  1. Démontage :
    Pour démonter le système de fichiers, utilisez la commande suivante :
   fusermount -u /path/to/local/mountpoint
  1. Options de montage :
    Il existe de nombreuses options que vous pouvez spécifier lors du montage d’un système de fichiers SSHFS, par exemple pour définir un délai d’attente de connexion :
   sshfs -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3 user@remote:/path/to/remote/directory /path/to/local/mountpoint

Ajout dans fstab

Configuration avec fstab

Le fichier /etc/fstab (File Systems TABle) est utilisé pour définir comment les systèmes de fichiers doivent être automatiquement montés sur le système. Vous pouvez ajouter une entrée pour SSHFS dans ce fichier pour monter un système de fichiers distant automatiquement au démarrage.

Voici un exemple d’entrée dans /etc/fstab pour monter un répertoire distant via SSHFS :

[email protected]:/appli/echange /appli/echange fuse.sshfs IdentityFile=/home/localuser/.ssh/id_rsa,uid=1001,gid=48,user,allow_other,_netdev 0 0

Explication des options :

  • [email protected]:/appli/echange
    • user est le nom d’utilisateur sur le serveur distant.
    • echange.in.domain.local est le nom d’hôte ou l’adresse IP du serveur distant.
    • /appli/echange après la deuxième colonne est le chemin du répertoire distant que vous souhaitez monter.
  • /appli/echange :
    • C’est le point de montage local où le répertoire distant sera monté.
  • fuse.sshfs :
    • C’est le type de système de fichiers. fuse.sshfs indique que le système de fichiers est géré par FUSE (Filesystem in Userspace) et utilise SSHFS.
  • IdentityFile : Spécifie le fichier contenant la clé privée pour l’authentification SSH.
  • uid et gid : Spécifient l’identifiant d’utilisateur et l’identifiant de groupe sous lesquels les fichiers distants seront accédés localement.
  • user : Permet à un utilisateur non privilégié de monter le système de fichiers.
  • allow_other : Permet à tous les utilisateurs du système local d’accéder au système de fichiers monté.
  • _netdev : Cette option indique que le système de fichiers dépend d’une connexion réseau, ce qui retarde le montage jusqu’à ce que le réseau soit opérationnel.
  • 0 :
    • Ce champ est le champ dump. Il indique au système s’il doit ou non effectuer une sauvegarde du système de fichiers. La valeur 0 signifie qu’aucune sauvegarde ne sera effectuée.
  • 0 :
    • Ce champ est le champ pass. Il spécifie l’ordre dans lequel les systèmes de fichiers seront vérifiés au démarrage. La valeur 0 signifie que le système de fichiers ne sera pas vérifié.

Procédure

  1. Ouvrez le fichier /etc/fstab avec un éditeur de texte en utilisant des privilèges super-utilisateur : sudo nano /etc/fstab
  2. Ajoutez la ligne mentionnée ci-dessus à la fin du fichier.
  3. Sauvegardez et fermez le fichier.
  4. Pour monter le système de fichiers sans redémarrer, utilisez la commande suivante :
    sudo mount -a

Avec cette configuration, le répertoire distant sera monté automatiquement à chaque démarrage du système. Assurez-vous que toutes les informations et les chemins sont corrects, et que la clé SSH spécifiée a les autorisations nécessaires pour accéder au serveur distant.

Avantages et Inconvénients

Avantages

  • Sécurité : Toutes les communications entre le client et le serveur sont cryptées.
  • Simplicité : Facile à installer et à configurer.
  • Transparence : Accès transparent aux fichiers distants comme s’ils étaient locaux.

Inconvénients

  • Performance : Peut être plus lent que d’autres solutions comme NFS ou Samba.
  • Stabilité : Peut être moins stable lors de la manipulation de gros volumes de données ou sur des connexions réseau instables.

Applications

SSHFS est particulièrement utile pour les développeurs ou les administrateurs système qui ont besoin d’accéder à des fichiers sur des serveurs distants de manière sécurisée et simple. Il est également pratique pour des situations où les solutions traditionnelles de partage de fichiers comme Samba ou NFS ne sont pas idéales ou trop complexes à mettre en place.

Conclusion

SSHFS est un outil puissant et simple pour monter des systèmes de fichiers distants sur votre machine locale via SSH. Tout en étant facile à utiliser, il présente des avantages en matière de sécurité. Il convient parfaitement pour des scénarios où la sécurité et la simplicité sont privilégiées par rapport à la performance et la stabilité.