SSHFS: Montar sistemas de ficheros a través de SSH

Hablamos de SSHFS, un cliente que nos permitirá montar un sistema de ficheros, basado en FUSE, a través de una conexión SSH. SSHFS utiliza la herramienta SFTP, similar a FTP, para la transferencia de ficheros, pero que funciona mediante cifrado.Si lo comparamos con otros sistemas de ficheros como NFS o SAMBA/CIFS, tiene como ventaja que no requiere ninguna configuración adicional en el lado del servidor. En cambio, debido que a SSHFS, utiliza para funcionar SFTP, todos los datos enviados y recibidos van cifrados, entre el servidor y el cliente. Por lo que el rendimiento, por ejemplo, es peor que con NFS, ya que se utilizan más ciclos del procesador, tanto en el lado del cliente como del servidor.

Instalar SSHFS en GNU/Linux

El paquete SSHFS ya se encuentra disponible en la mayoría de las distribuciones, por lo que su instalación es bien sencilla.

En sistemas RHEL y Centos

  1. sudo yum update
  2. sudo yum install sshfs

En sistemas Debian, Ubuntu y Linux Mint

  1. sudo apt update
  2. sudo apt install sshfs

El paquete también está disponible para otros sistemas tipo UNIX como BSD* o Mac OS X

Montar un sistema de ficheros remoto con SSHFS

La forma habitual con esta herramienta es la siguiente, según su página de man.

Para montar un sistema de ficheros:

  1. sshfs [user@]host:[dir] mountpoint [options]

Para desmontarlo:

  1. fusermount -u mountpoint

Antes de empezar, tenemos que partir de la base, que esta herramienta utiliza el fichero de configuración de SSH, que como sabéis está ubicado en /etc/ssh/sshd_config. Si no se especifica el directorio remoto, se establece de manera predeterminada el directorio de inicio del usuario remoto.

Al igual que con NFS, debemos crear primero el directorio que utilizaremos como punto de montaje. Por ejemplo, en el cliente, creamos un directorio llamado «carpetaremota».

  1. mkdir /home/davidochobits/carpetaremota

Y en este realizaremos el montaje

  1. sshfs davidochobits@ip-servidor:/home/davidochobits /home/davidochobits/carpetaremota

Como es habitual nos pedirá la contraseña del usuario remoto. Para evitar esto, como es lógico, si queremos que el punto de montaje siempre esté disponible, debemos generar un par de llaves SSH y realizar el intercambio de estas.

De esta forma ya podemos interactuar con los directorios y los archivos del servidor remoto, como hacemos con los locales.

Si deseamos que este montaje sea permanente, debemos modificar el fichero «/etc/fstab» de la máquina local, y agregar un nuevo punto de montaje.

La forma sería la siguiente:

  1. user@host:/remote/dir  /local/mountpoint  fuse.sshfs  defaults  0  0

Desmontar el sistema de ficheros remoto

Como ya hemos indicado, desmontar un recurso montado con SSHFS, es sencillo:

  1. fusermount -u /punto-de-montaje

O bien

  1. umount /punto-de-montaje

Conclusión

Hemos visto en que consiste SSHFS, su relación con SFTP y SSH, además de algunos ejemplos de uso. Sin duda es una herramienta interesante que en algún momento nos puede ser de utilidad. Aunque no lo veo para redes locales, ya que NFS es más potente y tiene mejor rendimiento, si es cierto, que para equipos remotos nos puede servir, de manera puntual.

Si queréis saber más de esta herramienta, buscando información sobre ella, me he encontrado con una magnífica y extensa entrada del compañero Juan Carles, en la web de Geekland.eu Molt bona feina company!

Otras fuentes consultadas:

Linuxsize.com – How to use SSHFS to Mount Remote Directories over SSH