Monter et démonter sous Linux
sudo apt install sshfs
mkdir -p ~/mnt/server
sshfs user@server:/var/www ~/mnt/server
Désormais, ls ~/mnt/server affiche le dossier du serveur, et les fichiers que vous y écrivez sont écrits sur le serveur. Un chemin sans barre oblique initiale, comme dans server:project, part de votre dossier personnel là-bas. Sous Fedora, le paquet s'appelle fuse-sshfs.
fusermount3 -u ~/mnt/server
Sur les systèmes plus anciens, la commande peut être fusermount sans le 3. Si vous êtes dans le dossier ou si un programme y a un fichier ouvert, elle échoue avec Device or resource busy. Sortez du dossier et réessayez.
Vos clés habituelles, les entrées de ~/.ssh/config et les options de port fonctionnent :
sshfs server:project ~/mnt/server
sshfs -p 2222 user@server:/srv ~/mnt/server
sshfs -o IdentityFile=~/.ssh/id_work user@server:/srv ~/mnt/server
Options utiles
| Option | Ce qu'elle fait |
|---|---|
-o reconnect | Se reconnecte après une coupure de connexion |
-o ServerAliveInterval=15,ServerAliveCountMax=3 | Détecte une connexion morte au lieu de se figer |
-o ro | Monte en lecture seule |
-o idmap=user | Présente les fichiers de l'utilisateur distant comme les vôtres |
-o follow_symlinks | Suit les liens symboliques sur le serveur |
-o allow_other | Laisse les autres utilisateurs locaux voir le montage |
Une commande pratique au quotidien :
sshfs -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3 user@server:/srv ~/mnt/server
allow_other en utilisateur ordinaire échoue avec ce message tant que vous n'ajoutez pas user_allow_other à /etc/fuse.conf :
fusermount3: option allow_other only allowed if 'user_allow_other' is set in /etc/fuse.conf
Quand la connexion se coupe
Nous avons tué la session sur le serveur dans trois configurations :
| Configuration | Résultat |
|---|---|
| Montage simple, session tuée | sshfs s'est terminé et le dossier était de nouveau vide, sans montage |
-o reconnect, session tuée | Le ls suivant a fonctionné sur une nouvelle connexion |
Processus sshfs tué avec kill -9 | ls: cannot access ...: Transport endpoint is not connected |
Dans le dernier cas, fusermount3 -u ~/mnt/server nettoie la situation, et vous pouvez monter à nouveau.
Avec reconnect, une connexion qui exige un mot de passe saisi ne peut pas se reconnecter seule : utilisez une clé sans invite ou un agent.
Surprises courantes
- Le contenu du dossier local disparaît de la vue. Dans notre test, sshfs monté sur un dossier contenant un fichier a masqué ce fichier jusqu'au démontage. Utilisez un dossier vide.
- Les fichiers montrent un autre propriétaire. Sans
idmap=user, les propriétaires numériques du serveur sont affichés tels quels, comme 1000. Dans notre test avecidmap=user, ils apparaissaient comme l'utilisateur local. - Ce n'est pas un disque local. Chaque lecture et écriture passe par le réseau. Les outils qui parcourent beaucoup de fichiers, comme
git statusou un indexeur de code, peuvent être lents. - Le chemin doit exister. Un mauvais chemin échoue tout de suite avec
server:nosuch: No such file or directory.
macOS : macFUSE
macFUSE ajoute la prise en charge de FUSE, mais n'inclut pas de systèmes de fichiers par lui-même. Son site propose un paquet SSHFS en téléchargement séparé. Installez d'abord macFUSE, puis SSHFS.
macFUSE a deux backends. L'extension du noyau est celle par défaut et, sur Apple silicon, elle demande la première fois un redémarrage en mode Recovery pour autoriser les extensions tierces. D'après la documentation de macFUSE, le backend FSKit sous macOS 26 fonctionne sans ce changement : ajoutez l'option de montage -o backend=fskit. Démontez avec :
umount ~/mnt/server
État du projet
Le README de SSHFS dit qu'il n'a pas de contributeurs réguliers actifs, et que son mainteneur applique les pull requests et publie des versions mais ne corrige que les problèmes à fort impact. Il fonctionne, comme le montre notre test, mais gardez cela en tête pour tout usage critique. Pour des transferts réguliers, rsync convient souvent mieux.
Pour choisir entre les outils, voir scp, sftp ou rsync.
Questions
sshfs a-t-il besoin de quelque chose sur le serveur ?
Seulement d'un serveur SSH normal avec SFTP activé. Si sftp échoue avec subsystem request failed, voir le guide de cette erreur.
Pourquoi sshfs est-il lent ?
Chaque lecture et écriture passe par le réseau. Les outils qui parcourent beaucoup de fichiers, comme git status ou un indexeur de code, le ressentent le plus. Copiez avec rsync quand la vitesse compte.
Comment corriger Transport endpoint is not connected ?
Le processus sshfs s'est arrêté en laissant le montage. Exécutez fusermount3 -u sur le dossier, ou umount sous macOS, puis montez à nouveau. Ajoutez -o reconnect pour reprendre après une coupure.