GNU/Linux >> Tutoriels Linux >  >> Linux

Comment utiliser SSHFS Mount avec des répertoires distants via SSH

Travailler sur un répertoire distant comme s'il s'agissait d'un répertoire local est plus pratique, n'est-ce pas ? Au lieu de pousser et d'extraire des fichiers à distance à l'aide de SCP, SFTP ou FTP, et si vous pouviez gérer ces fichiers directement ? Heureusement pour vous, la monture SSHFS est une solution rapide à ce dilemme.

Ce didacticiel vous apprendra à utiliser le montage SSHFS afin que vous puissiez accéder au contenu du répertoire distant sur votre machine locale. Que vous soyez un utilisateur Windows ou Linux, ce didacticiel est fait pour vous.

L'exemple de cas d'utilisation spécifique de ce didacticiel illustre la mise à jour du contenu d'un site Web sur le répertoire monté SSHFS d'un serveur distant. Cependant, le concept général doit s'appliquer à votre situation spécifique et ne se limite pas aux seuls serveurs Web.

Prérequis

Ce tutoriel sera une démonstration pratique. Si vous souhaitez suivre, assurez-vous d'avoir les éléments suivants :

  • Un serveur Web Linux – Ce didacticiel utilisera un Fedora 35 nommé wbserver avec Apache HTTP Server installé. Ce serveur contient le répertoire distant qui sera la cible du montage SSHFS.
  • Un client Linux :ce didacticiel utilisera un client Fedora 35 nommé fedora .
  • Un client Windows (Windows 7 et versions ultérieures) :ce didacticiel utilise un client Windows 10 nommé win10pc .

Préparer le répertoire distant

Ce tutoriel travaillera sur le répertoire distant sur le wbserver serveur appelé /var/www/html . Par défaut, seul le compte root a accès à ce dossier. Étant donné que vous n'utiliserez pas le compte racine du serveur, vous devez à la place accorder au compte d'utilisateur désigné l'autorisation d'accéder au répertoire.

Dans cet exemple, le compte utilisateur désigné pour le montage et l'accès au montage SSHFS est adm1 . Suivez les étapes ci-dessous pour donner adm1 les autorisations appropriées à /var/www/html le wbserver .

1. Connectez-vous à wbserver en utilisant votre client SSH préféré.

2. Ensuite, exécutez la commande ci-dessous pour accorder à l'utilisateur adm1 des autorisations d'accès complet (rwx) au dossier /var/www/html.

sudo setfacl -m u:adm1:rwx /var/www/html

3. Enfin, confirmez que l'autorisation est correcte en exécutant la commande ci-dessous.

sudo getfacl -a /var/www/html

Comme vous pouvez le voir ci-dessous, adm1 a maintenant un accès en lecture/écriture au dossier.

Utilisation du montage SSHFS sur Linux

SSHFS est principalement un outil Linux, et il vous suffit d'émettre quelques commandes pour monter un répertoire distant sur votre ordinateur. L'installation des packages pour activer le montage SSHFS est aussi pratique que l'installation d'autres packages sur Linux via le gestionnaire de packages de votre distribution.

Installation de SSHFS et montage d'un répertoire distant

Suivez les étapes ci-dessous pour installer le package de montage SSHFS et monter un répertoire distant sur un chemin local.

1. Connectez-vous à votre client Linux via SSH ou Desktop, selon votre environnement.

2. Exécutez la commande suivante pour installer le package fuse-sshfs à l'aide de votre gestionnaire de packages.

Remarque :sur les distributions Linux basées sur Debian, le nom du package est sshfs.

sudo dnf install -y fuse-sshfs

Le gestionnaire de packages installe également les dépendances qui ne sont pas encore présentes sur votre ordinateur. Et comme la taille de chaque package est inférieure à 100 Ko, le téléchargement et l'installation n'ont pris que quelques secondes.

3. Ensuite, créez un nouveau dossier sous votre répertoire personnel appelé mnt. Ce nouveau dossier est le point de montage du répertoire distant.

mkdir ~/mnt

4. Après avoir créé le point de montage, exécutez la commande sshfs ci-dessous.

Cette commande montera le répertoire distant du serveur Web (wbserver) (/var/www/html) sur le point de montage local (~/mnt) que vous avez créé en utilisant les informations d'identification d'adm1 pour l'accès.

sshfs [email protected]:/var/www/html ~/mnt

Si le serveur SSH n'écoute pas le port par défaut 22, vous devez spécifier le commutateur -o port avec la commande sshfs. Par exemple, si le serveur distant écoute le port 2222, la commande serait sshfs -o port 2222.

5. Si vous vous connectez au serveur pour la première fois, confirmez the connexion en appuyant sur Y à l'invite, saisissez le mot de passe du compte et appuyez sur Enter .

6. Enfin, confirmez que vous avez monté avec succès le répertoire distant en exécutant la commande ci-dessous.

findmnt

Vous devriez voir que le répertoire distant est maintenant monté sur le répertoire local que vous avez spécifié.

Activer le montage automatique au démarrage

Pendant que vous avez monté avec succès le répertoire distant, rappelez-vous que cet état de montage n'est pas persistant. Le redémarrage de l'ordinateur ne montera pas automatiquement le répertoire distant.

Mais, vous pouvez faire en sorte que le montage SSHFS survive aux redémarrages de l'ordinateur en modifiant le /etc/fstab fichier et activation de l'authentification par clé pour le adm1 Compte. L'activation de l'authentification basée sur la clé SSH garantit que le montage SSHFS sera entièrement automatisé (pas d'invite de mot de passe).

1. Sur le client Linux, générez une nouvelle paire de clés SSH en exécutant la commande ci-dessous.

ssh-keygen

Dans le fichier Enter dans lequel enregistrer l'invite de clé, saisissez le nom du fichier de clé et appuyez sur Entrée. Dans cet exemple, le nom du fichier clé à enregistrer est /home/user1/.ssh/[email protected]

Laissez la phrase de passe vide et appuyez deux fois sur Entrée. La capture d'écran ci-dessous montre le résultat de la création de la paire de clés.

2. Maintenant, copiez la clé sur le serveur Web. La commande ci-dessous installe la clé que vous avez précédemment générée (/home/user1/.ssh/[email protected]) sur le compte adm1 sur wbserver.

ssh-copy-id -i /home/user1/.ssh/[email protected] [email protected]

Tapez le mot de passe pour [email protected] à l'invite et appuyez sur Entrée. Comme vous pouvez le voir ci-dessous, la commande a installé avec succès la clé du serveur.

3. SSH dans wbserver en utilisant la paire de clés pour s'assurer que la connexion basée sur la clé fonctionne.

ssh -i /home/user1/.ssh/[email protected] [email protected]

Par conséquent, la connexion devrait réussir sans demander de mot de passe. Tapez exit et appuyez sur Entrée pour vous déconnecter du serveur Web.

4. Maintenant que vous avez configuré l'authentification basée sur la clé SSH pour le compte d'utilisateur SSHFS, vous êtes prêt à configurer le montage SSHFS persistant.

Ouvrez le fichier /etc/fstab dans un éditeur de texte.

sudo nano /etc/fstab

5. Ajoutez le code ci-dessous à la fin du fichier /etc/fstab. Assurez-vous de modifier la valeur identityfile=avec le chemin du fichier de clé SSH.

[email protected]:/var/www/html /home/user1/mnt fuse.sshfs identityfile=/home/user1/.ssh/[email protected],allow_other,_netdev 0 0

6. Après l'édition, enregistrez le fichier, fermez l'éditeur de texte et redémarrez l'ordinateur. Comme vous pouvez le voir ci-dessous, le montage SSHFS est à nouveau disponible après le redémarrage.

Test du montage SSHFS

Vous avez donc monté le répertoire distant sur votre ordinateur local. La question est maintenant, "est-ce que ça marche?". Le test le plus rapide à confirmer consiste à créer un nouveau fichier et à l'enregistrer sur le point de montage SSHFS. Le fichier que vous avez créé devrait alors apparaître sur le serveur.

Par défaut, le /var/www/html dossier sur le serveur Web est vide. Lorsque vous accédez au site Web hébergé sur https://wbserver , vous ne verrez que la page de test par défaut, comme la capture d'écran ci-dessous.

Dans cet exemple, vous allez créer une nouvelle page d'accueil et confirmer que le serveur Web affiche cette nouvelle page.

1. Basculez le répertoire de travail vers ~/mnt, le point de montage SSHFS.

cd ~/mnt

2. Exécutez la commande touch pour créer un fichier index.html et ouvrez-le dans l'éditeur de texte.

touch index.html && nano index.html

3. Maintenant, remplissez le fichier index.html avec le code HTML ci-dessous, enregistrez le fichier et quittez l'éditeur.

Welcome

I was put here over SSH by SSHFS

La capture d'écran ci-dessous montre le contenu attendu du fichier index.html.

4. Enfin, ouvrez à nouveau l'URL du site Web dans votre navigateur Web. Le serveur Web devrait récupérer et afficher la nouvelle page d'accueil, comme vous pouvez le voir ci-dessous.

Toutes nos félicitations! Vous avez maintenant implémenté avec succès le montage SSHFS sur votre ordinateur Linux. Vous n'avez pas besoin de charger ou de télécharger des fichiers distants pour apporter des modifications manuellement.

Démonter le répertoire distant

Supposons que vous n'ayez plus besoin d'accéder au répertoire distant via le montage SSHFS et que vous souhaitiez le démonter, exécutez l'une des commandes ci-dessous.

Exécutez la commande ci-dessous si vous avez monté le répertoire distant de manière interactive en utilisant le sshfs outil.

fusermount -u /home/user1/mnt

Si vous avez monté automatiquement le répertoire distant dans fstab , exécutez plutôt la commande ci-dessous. De plus, vous devez supprimer l'entrée de montage automatique SSHFS dans fstab . Sinon, le répertoire distant se montera à nouveau automatiquement après un redémarrage.

sudo umount /home/user1/mnt

Utilisation du montage SSHFS sous Windows

Les ordinateurs Windows peuvent mapper des emplacements réseau en tant que lecteurs locaux, tels que des sites FTP, des partages réseau et des bibliothèques SharePoint. Vous serez heureux de savoir que vous pouvez également ajouter des lecteurs de montage SSHFS dans Windows en installant un programme appelé SSHFS-Win - un portage de SSHFS sur Linux.

Installer WinFsp et SSHFS-Win

SSHFS-Win nécessite que WinFsp fonctionne car il fournit la fonctionnalité FUSE sous-jacente. Suivez les instructions ci-dessous pour installer à la fois WinSfp et SSHFS-Win.

1. Ouvrez le navigateur sur votre client Windows et téléchargez la dernière version de WinSfp (v1.10) et SSHFS-Win (v3.5.20357).

2. Localisez les programmes d'installation que vous avez téléchargés et exécutez d'abord le programme d'installation de WinSfp.

3. Cliquez sur Suivant sur la page Bienvenue dans l'assistant d'installation de WinFsp 2022.

4. Sélectionnez toutes les fonctionnalités et cliquez sur Suivant.

5. Cliquez sur Installer sur la page Prêt à installer WinFsp 2022.

6. Après l'installation de WinFsp, cliquez sur Terminer.

7. Ensuite, démarrez le programme d'installation de SSHFS-Win.

8. Cliquez sur Suivant sur le premier écran, comme indiqué ci-dessous, pour démarrer le processus d'installation.

9. Cliquez sur Suivant sur la page Configuration personnalisée.

10. Sur la page Prêt à installer SSHFS-Win, cliquez sur Installer.

11. Enfin, cliquez sur Terminer pour terminer pour quitter l'assistant de configuration.

Comprendre la syntaxe du chemin SSHFS

Avant de mapper un répertoire distant via le montage SSHFS, consultez la liste ci-dessous pour comprendre comment SSHFS-Win interprète les chemins distants.

\\\\PREFIX\\[email protected][!PORT][\\PATH]
  • REMUSER est l'utilisateur distant dont vous utiliserez les informations d'identification pour vous authentifier auprès du serveur distant.
  • HOST est le nom d'hôte ou l'adresse IP du serveur distant.
  • PORT est le port d'écoute SSH du serveur distant. Cette valeur est facultative et la valeur par défaut est le port 22.
  • PATH est le chemin distant relatif au PREFIX . Les différents préfixes sont :
    • sshfs - correspond au chemin relatif au répertoire personnel de l'utilisateur (c'est-à-dire HOST:~REMUSER/PATH ).
    • sshfs.r – correspond à un chemin relatif au répertoire racine de l'hôte (c'est-à-dire HOST:/PATH )
    • sshfs.k - correspond au chemin relatif au répertoire personnel de l'utilisateur (c'est-à-dire HOST:~REMUSER/PATH ) et utilise l'authentification basée sur une clé SSH. Ce préfixe utilise la clé dans %USERPROFILE%/.ssh/id_rsa pour l'authentification.
    • sshfs.kr – correspond à un chemin relatif au répertoire racine de l'hôte (c'est-à-dire HOST:/PATH ) et utilise la clé dans %USERPROFILE%/.ssh/id_rsa pour l'authentification.

Monter et démonter le répertoire distant à l'aide de l'explorateur de fichiers Windows

Une façon de mapper un lecteur réseau dans Windows consiste à utiliser l'explorateur de fichiers Windows. Avec cette méthode, vous n'avez pas besoin d'exécuter de commandes et vous effectuerez chaque étape dans une interface graphique de type assistant.

1. Ouvrez une fenêtre de l'Explorateur de fichiers, cliquez sur Ce PC —> Ordinateur —> Connecter un lecteur réseau .

2. Choisissez une lettre de lecteur et saisissez le chemin ci-dessous dans la zone Dossier pour monter le dossier \var\www\html.

\\sshfs.r\[email protected]\var\www\html

Laissez l'option Se reconnecter à la connexion cochée et cliquez sur Terminer.

3. Saisissez le mot de passe du compte, cochez la case Se souvenir de moi et cliquez sur OK.

Vous avez maintenant mappé un montage SSHFS avec une lettre de lecteur. Et comme vous avez activé les options Se reconnecter à la connexion et Se souvenir de moi, Windows reconnectera le montage SSHFS après le redémarrage de l'ordinateur.

4. À ce stade, vous pouvez désormais gérer les fichiers du répertoire distant. Mais, si vous n'avez plus besoin du lecteur mappé et que vous souhaitez le supprimer, cliquez avec le bouton droit sur le montage SSHFS et cliquez sur Déconnecter.

Monter et démonter le répertoire distant à l'aide de la ligne de commande

La commande net use est un autre moyen de mapper un répertoire distant dans Windows. Le mappage des lecteurs de montage SSHFS via la ligne de commande est utile pour les scripts et l'automatisation.

Pour monter le répertoire distant, ouvrez l'invite de commande ou PowerShell et exécutez la commande ci-dessous pour mapper le \\var\\www\\html répertoire distant sur le lecteur de l'ordinateur local Z . Assurez-vous de changer le PASSWORD valeur avec le mot de passe de l'utilisateur distant.

net use Z: \\\\sshfs.r\\[email protected]\\var\\www\\html PASSWORD /user:adm1

Pour supprimer le lecteur de montage SSHFS à l'aide de la ligne de commande, delete le mappage pour piloter Z: en exécutant la commande ci-dessous.

net use Z: /delete

Test du montage SSHFS

Maintenant que vous avez accès à un lecteur réseau mappé localement, vous pouvez gérer les fichiers du répertoire distant comme vous le feriez pour n'importe quel autre fichier local. Dans cet exemple, vous allez mettre à jour la page d'accueil du site Web directement à partir du lecteur SSHFS mappé.

1. Ouvrez l'explorateur de fichiers et accédez au lecteur mappé.

2. Ouvrez le fichier appelé index.html dans un éditeur de texte comme le bloc-notes. Si le fichier n'existe pas, créez-le d'abord.

3. Copiez le code HTML ci-dessous, collez-le dans votre index.html et enregistrez le fichier.

Welcome

I was put here over SSH by SSHFS

Brought to You from Windows 10

4. Enfin, ouvrez votre navigateur Web et accédez à l'URL du site Web HTTP://wbserver . Vous devriez maintenant voir la page d'accueil mise à jour que vous avez modifiée, confirmant que votre montage SSHFS fonctionne comme prévu.

Conclusion

Vous avez enfin atteint la fin de ce tutoriel. Vous avez appris à utiliser le montage SSHFS pour mapper des répertoires sur votre ordinateur Windows ou Linux local à partir d'un serveur SSH distant. SSHFS est un excellent outil pour la commodité et la sécurité de l'accès aux fichiers à distance.

En parlant de sécurité, vous devriez peut-être consulter Comment sécuriser SSH avec Fail2Ban comme prochaine étape ? Bonne chance !


Linux
  1. Commande SCP sous Linux :comment l'utiliser, avec des exemples

  2. Comment utiliser Ssh-copy-id avec un tunnel Ssh à sauts multiples ?

  3. Linux - Comment monter un système de fichiers distant en spécifiant un numéro de port ?

  4. SSHFS (Secure SHell FileSystem) - Monter en toute sécurité le système de fichiers distant sur ssh

  5. Comment différencier les répertoires sur ssh

SSHFS :montage d'un système de fichiers distant via SSH

Comment monter un système de fichiers Linux distant à l'aide de SSHFS

Comment utiliser SSH pour se connecter à un serveur distant

Comment utiliser une clé SSH avec des utilisateurs non root

Monter un dossier distant avec sshfs

Comment utiliser SSH pour se connecter à un serveur distant sous Linux ou Windows