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 auPREFIX
. Les différents préfixes sont :sshfs
- correspond au chemin relatif au répertoire personnel de l'utilisateur (c'est-à-direHOST:~REMUSER/PATH
).sshfs.r
– correspond à un chemin relatif au répertoire racine de l'hôte (c'est-à-direHOST:/PATH
)sshfs.k
- correspond au chemin relatif au répertoire personnel de l'utilisateur (c'est-à-direHOST:~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-à-direHOST:/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 !