Secure Shell FileSystem (SSHFS) es un sistema de archivos para sistemas Linux mediante el uso de la implementación reescrita del módulo FUSE, que fue desarrollada por Miklos Szeredi, quién también escribió SSHFS permitiendo montar un sistema de archivos de un servidor SSH mediante este mismo protocolo. En Windows puedes utilizar SSHFS-Win de Bill Zissimopoulos para montar la unidad de red.
En este artículo explicaremos brevemente como utilizar este sistema de archivos, montándolo manualmente y también automáticamente con fstab.
Instalación y montaje de un sistema de archivos
En el equipo cliente deberás instalar los siguientes paquetes:
# apt install sshfs fuse
Posteriormente comprueba que este cargado FUSE en el Kernel:
# grep -i fuse /lib/modules/$(uname -r)/modules.builtin
Debería aparecer lo siguiente:
kernel/fs/fuse/fuse.ko
En caso que no aparezca actívalo:
# modprobe fuse
Posteriormente crea la ubicación donde montarás el sistema de archivos:
# mkdir /root/sshfs
Luego simplemente especifica el directorio remoto y el directorio destino:
# sshfs -o allow_other root@dirección_IP:/root /root/sshfs
Te pedirá la introducción de la contraseña del servidor SSH remoto y una vez introducida habrá montado el directorio (ejemplo):
root@clientesshfs:~# ls -la /root/sshfs/
total 56
drwx------ 1 root root 4096 Jan 4 14:33 .
drwx------ 8 root root 4096 Jan 4 17:59 ..
drwxr-xr-x 1 root root 4096 Jan 4 14:33 .ansible
-rw------- 1 root root 5 Jan 4 17:40 .bash_history
-rw-r--r-- 1 root root 3106 Dec 5 2019 .bashrc
drwx------ 1 root root 4096 Jun 15 2020 .cache
drwx------ 1 root root 4096 Jun 15 2020 .config
-rw-r--r-- 1 root root 161 Dec 5 2019 .profile
drwx------ 1 root root 4096 Jan 4 14:33 .ssh
-rw------- 1 root root 14008 Aug 26 16:11 .viminfo
-rw------- 1 root root 110 Dec 21 10:22 .Xauthority
Cómo montar el sistema de archivos automáticamente
Para montar el sistema de archivos SSHFS automáticamente al iniciar el sistema operativo lo más práctico y seguro es el uso de llaves SSH para ello. Por lo tanto, deberás crear una llave en el equipo cliente i copiarla/transferirla al servidor remoto.
Explicaremos el proceso a continuación, pero tienes más información en Creación de llaves con ssh-keygen.
Primero crea la llave SSH con ssh-keygen:
# ssh-keygen -t rsa -b 4096
Una vez creada, puedes utilizar la utilidad que incorpora el propio ssh-keygen para transferirla:
# ssh-copy-id root@direcciónIP
Te pedirá la contraseña del servidor remoto para almacenarla y debería aparecer que ha sido añadida:
Number of key(s) added: 1
Una vez realizado, comprueba que puedes acceder sin que solicite la contraseña del usuario del servidor remoto. En caso afirmativo, podrás montarlo por fstab utilizando la llave.
Para realizarlo, edita el fichero de fstab:
# vi /etc/fstab
Y añadir al final la siguiente línea (modifícalo en caso necesario):
root@direcciónIP:/root /root/sshfs fuse.sshfs noauto,x-systemd.automount,_netdev,users,idmap=user,IdentityFile=/root/.ssh/id_rsa,allow_other,reconnect 0 0
Una vez realizado el sistema de archivos se montará automáticamente al iniciar el sistema operativo.
Esperamos haberte ayudado con este tutorial 🙂. Recuerda, si tienes consultas sobre esta u otra cuestión relacionada con tus servidores en Clouding, no dudes en escribir a soporte@clouding.io ¡Estamos a tu lado para lo que necesites!