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
sudo yum update
sudo yum install sshfs
En sistemas Debian, Ubuntu y Linux Mint
sudo apt update
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:
sshfs [user@]host:[dir] mountpoint [options]
Para desmontarlo:
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».
mkdir /home/davidochobits/carpetaremota
Y en este realizaremos el montaje
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:
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:
fusermount -u /punto-de-montaje
O bien
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