Cómo montar una carpeta remota por SSH con sshfs

Instala sshfs, crea una carpeta vacía y ejecuta sshfs user@server:/path ~/mnt/server. La carpeta remota se comporta entonces como una local. Para desmontarla, ejecuta fusermount3 -u ~/mnt/server en Linux o umount ~/mnt/server en macOS. El servidor solo necesita SSH normal con SFTP activado. En un Mac, sshfs necesita antes macFUSE.

Actualizada el . SSHFS 3.7.3 con FUSE 3.17.2 como root en Debian 13, en un contenedor desechable con privilegios, contra OpenSSH 10.0 en otro.

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ónQué hace
-o reconnectSe reconecta tras una caída de la conexión
-o ServerAliveInterval=15,ServerAliveCountMax=3Detecta una conexión muerta, en vez de quedarse colgado
-o roMonta en solo lectura
-o idmap=userMuestra los archivos del usuario remoto como tuyos
-o follow_symlinksSigue los enlaces simbólicos del servidor
-o allow_otherDeja 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ónResultado
Montaje normal, sesión terminadasshfs terminó y la carpeta volvió a estar vacía, sin montaje
-o reconnect, sesión terminadaEl siguiente ls funcionó sobre una conexión nueva
Proceso sshfs terminado con kill -9ls: 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 con idmap=user aparecieron 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 status o 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.

Fuentes

Más en SFTP y transferencia de archivos

Todas las guías