Dans cet article, nous allons voir rapidement comment mettre en place un montage SSHFS persistant sur un serveur RHEL 8 afin d'accéder à un répertoire distant. L'intérêt d'utiliser SSHFS plutôt que d'autres systèmes de fichiers en réseau est sa simplicité de mise en oeuvre. En effet, SSHFS s'appuie sur SSH qui est généralement déjà configuré sur toutes les machines Linux du réseau d'Entreprise. Il n'y a donc, la plupart du temps, aucun service à installer côté serveur ni aucun flux réseau supplémentaire à autoriser.

Installation de SSHFS sur le client

Pour pouvoir utiliser sshfs, nous devons installer le paquet fuse-sshfs. Il y a cependant une petite difficulté concernant le dépôt à utiliser. En effet, le dépôt principal RHEL 8 ne contenant pas le paquet, il faut utiliser le dépôt codeready-builder de RHEL 8.

  1. Nous installons donc le paquet avec la commande suivante :
    # dnf --enablerepo="codeready-builder-for-rhel-8-x86_64-rpms" install fuse-sshfs

Création d'un compte SSH dédié

Lors d'un montage temporaire SSHFS, on préfère ne pas utiliser le compte root. Mais comme nous souhaitons que le montage se fasse automatiquement au redémarrage de la machine de façon sécurisée au moyen d'une paire de clés RSA, le compte root sera requis et aura besoin d'accéder à une clé privée. Nous allons donc créer une paire de clé RSA dans le répertoire /root et nous allons transmettre la clé publique à un compte utilisateur dédié sur le serveur distant. Ainsi, lors du démarrage de la machine, le compte root pourra établir le montage sécurisé à l'aide de sa clé privée en se servant du compte utilisateur dédié sur le serveur distant.

  1. Sur le client, générer une paire de clés RSA :
    # cd /root
    # ssh-keygen -t rsa

    Une fois terminé, les clés seront par défaut créées dans le réertoire caché /root/.ssh
    Note : ne pas saisir de passphrase lors de la génération des clés puisque nous souhaitons un montage automatique au démarrage
  2. Sur le serveur distant, créer un compte dédié à cet accès et créer son fichier de clés publiques autorisées :
    # useradd user01
    # mkdir /home/user01/.ssh
    # chown user01:user01 /home/user01/.ssh && chmod 700 /home/user01/.ssh
    # touch /home/user01/.ssh/authorized_keys2
    # chown user01:user01 /home/user01/.ssh/authorized_keys2 && chmod 600 /home/user01/.ssh/authorized_keys2
  3.  Copier dans le fichier authorized_keys2 le contenu de la clé publique (id_rsa.pub) créée sur le client, par exemple avec un copié-collé dans Putty

Création et test du montage

Sur la machine cliente, nous allons créer le point de montage et tester le montage avec la commande sshfs.

  1. Créer le point de montage :
    # mkdir /mnt/remfs
  2. Tester le montage du répertoire distant /tmp :
    # sshfs user01@<hote distant>:/tmp /mnt/remfs
  3. Constater avec la commande suivante que le montage a correctement été effectué :
    # ls /mnt/remfs
  4. Pour démonter le répertoire SSHFS, on peut utiliser l'une des commandes suivantes :
    # umount /mnt/remfs
    # fusermount -u /mnt/remfs

 

Rendre persistant le montage

Pour rendre persistant le montage après un redémarrage du serveur, ajouter la ligne suivante dans le fichier /etc/fstab :

user01@<hote distant>:/tmp    /mnt/remfs   fuse.sshfs   defaults   0   0

Par défaut, seul le compte qui crée le montage peut y accéder, en l'occurrence le compte root puisque le montage se fait au démarrage. Si l'on veut permettre à n'importe quel utilisateur de la machine d'utiliser le montage, il faut ajouter l'option "allow_other". On peut également spécifier avec l'option "_netdev" qu'il s'agit d'un montage réseau et non d'un montage de périphérique, ce qui peut parfois éviter des erreurs. On obtient alors la ligne suivante :

user01@<hote distant>:/tmp    /mnt/remfs   fuse.sshfs   defaults,allow_other,_netdev   0   0

Pour relancer l'ensemble des montages présents dans /etc/fstab, on peut taper la commande suivante :

# mount -a

 

Liens

https://wiki.archlinux.org/title/SSHFS_(Fran%C3%A7ais)
https://www.redhat.com/sysadmin/sshfs
https://www.it-connect.fr/utilisation-des-montages-sshfs-securises-sur-gnu-linux/

Une erreur ? une imprécision ? N'hésitez pas à le signaler dans les commentaires 😉

Ajouter un commentaire

Joomla templates by a4joomla