Montar y desmontar en Linux
sudo apt install sshfs
mkdir -p ~/mnt/server
sshfs user@server:/var/www ~/mnt/server
Ahora ls ~/mnt/server muestra la carpeta del servidor, y los archivos que escribas ahí se escriben en el servidor. Una ruta sin barra inicial, como en server:project, parte de tu carpeta personal en el servidor. En Fedora el paquete se llama fuse-sshfs.
fusermount3 -u ~/mnt/server
En sistemas antiguos el comando puede ser fusermount, sin el 3. Si estás dentro de la carpeta o algún programa tiene un archivo abierto, falla con Device or resource busy. Sal de la carpeta e inténtalo de nuevo.
Tus claves habituales, las entradas de ~/.ssh/config y las opciones de puerto funcionan:
sshfs server:project ~/mnt/server
sshfs -p 2222 user@server:/srv ~/mnt/server
sshfs -o IdentityFile=~/.ssh/id_work user@server:/srv ~/mnt/server
Opciones útiles
| Opción | Qué hace |
|---|---|
-o reconnect | Se reconecta tras una caída de la conexión |
-o ServerAliveInterval=15,ServerAliveCountMax=3 | Detecta una conexión muerta, en vez de quedarse colgado |
-o ro | Monta en solo lectura |
-o idmap=user | Muestra los archivos del usuario remoto como tuyos |
-o follow_symlinks | Sigue los enlaces simbólicos del servidor |
-o allow_other | Deja que otros usuarios locales vean el montaje |
Un comando práctico para el día a día:
sshfs -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3 user@server:/srv ~/mnt/server
allow_other como usuario normal falla con este mensaje hasta que añades user_allow_other a /etc/fuse.conf:
fusermount3: option allow_other only allowed if 'user_allow_other' is set in /etc/fuse.conf
Cuando se rompe la conexión
Terminamos la sesión en el servidor en tres configuraciones:
| Configuración | Resultado |
|---|---|
| Montaje normal, sesión terminada | sshfs terminó y la carpeta volvió a estar vacía, sin montaje |
-o reconnect, sesión terminada | El siguiente ls funcionó sobre una conexión nueva |
Proceso sshfs terminado con kill -9 | ls: cannot access ...: Transport endpoint is not connected |
En el último caso, fusermount3 -u ~/mnt/server lo limpia y puedes volver a montar.
Con reconnect, un acceso que necesita escribir una contraseña no puede reconectarse solo, así que usa una clave sin petición de frase de contraseña o un agente.
Sorpresas habituales
- El contenido de la carpeta local desaparece de la vista. En nuestra prueba sshfs se montó sobre una carpeta que contenía un archivo y lo ocultó hasta el desmontaje. Usa una carpeta vacía.
- Los archivos muestran otro propietario. Sin
idmap=user, los propietarios numéricos del servidor se muestran tal cual, por ejemplo 1000. En nuestra prueba conidmap=useraparecieron como el usuario local. - No es un disco local. Cada lectura y escritura pasa por la red. Las herramientas que recorren muchos archivos, como
git statuso un indexador de código, pueden ir lentas. - La ruta tiene que existir. Una ruta incorrecta falla enseguida con
server:nosuch: No such file or directory.
macOS: macFUSE
macFUSE añade compatibilidad con FUSE y no incluye sistemas de archivos por sí mismo. Su sitio ofrece un paquete de SSHFS como descarga aparte. Instala primero macFUSE y después SSHFS.
macFUSE tiene dos backends. La extensión del kernel es la predeterminada y en Apple silicon requiere reiniciar en Recovery la primera vez para permitir extensiones de terceros. Según la documentación de macFUSE, el backend FSKit en macOS 26 funciona sin ese cambio: añade la opción de montaje -o backend=fskit. Desmonta con:
umount ~/mnt/server
Estado del proyecto
El README de SSHFS dice que no tiene colaboradores regulares activos, y que su mantenedor aplica pull requests y publica versiones pero solo corrige los problemas de mayor impacto. Funciona, como muestra nuestra prueba, pero ten esto presente para cualquier cosa crítica. Para transferencias regulares, rsync suele encajar mejor.
Para elegir entre las herramientas, consulta scp, sftp o rsync.
Preguntas
¿sshfs necesita algo en el servidor?
Solo un servidor SSH normal con SFTP activado. Si sftp falla con subsystem request failed, consulta la guía de ese error.
¿Por qué sshfs es lento?
Cada lectura y escritura pasa por la red. Lo notan más las herramientas que recorren muchos archivos, como git status o un indexador de código. Si necesitas velocidad, copia con rsync.
¿Cómo arreglo Transport endpoint is not connected?
El proceso sshfs terminó y dejó el montaje. Ejecuta fusermount3 -u sobre la carpeta, o umount en macOS, y vuelve a montar. Añade -o reconnect para recuperarte de los cortes.