SSHFS + FUSE: Configuración y Montaje Automático de Archivos

SSHFS es un sistema de archivos para Linux (y otros sistemas operativos con una implementación FUSE), que permite el uso compartido de archivos de forma remota usando un entorno seguro de acceso SSH.

Se necesita que el servidor remotor al que nos conectamos tenga el demonio ssh corriendo y el servicio SSHFS con el módulo FUSE en la máquina local.

Primero nos vamos a asegurar de que la máquina a la que nos vamos a conectar remotamente, tiene un servicio ssh corriendo, para ello:

ssh

Tras esto nos vamos a la máquina local e instalamos sshfs:

2

Ahora vamos a activar el módulo FUSE, que por defecto viene instalado en la distribución.

Un módulo es un archivo que contiene código objeto que puede extender el núcleo en ejecución de un sistema operativo, en este caso lo que hace es brindar soporte al sistema de archivos y permitir que usuarios no privilegiados creen sus propios sistemas de archivos sin tener que editar el código del núcleo.

Para activarlo editamos el archivo /etc/modules y añadimos fuse al final:

3

Después de guardar, podemos reiniciar el equipo para que se ejecuten los cambios o escribir el comando modprobe fuse. Adicionalmente tenemos que meter al usuario que estamos usando dentro del grupo fuse:

5

Lo siguiente por hacer será algo tan básico como la creación de la carpeta que se va a montar, para ello nos vamos al equipo remoto y con un mkdir la creamos, en mi caso he creado la carpeta pruebasshfs y dentro de ella el archivo archivodeprueba:

8

En el equipo local también creamos una carpeta si así lo vemos necesario, en mi caso la he nombrado sshfs.

Pues bien, ya sólo nos queda conectarnos vía sshfs especificando el usuario del equipo remoto al que nos vamos a conectar (en mi caso tanto el del equipo remoto como el del local se llaman igual):

6

Y podemos comprobar como el archivo se nos ha montado como si estuviera en nuestro equipo local:

7

Podemos comprobarlo también con un df:

1

Lo siguiente que vamos a probar, será el conseguir que cuando arranque el equipo local se conecte al remoto por sshfs y monte la carpeta de forma automática.

Para ello, lo primero que vamos a hacer va a ser generar una clave pública en la máquina local:

2

Ahora la copiamos a la máquina remota:

3

Luego nos vamos a conectar por ssh a la máquina remota para ver que usuarios tienen acceso, mirando el archivo authorized_keys:

4

Nos desconectamos de ssh y nos vamos a editar el fstab de la máquina local, introduciendo la siguiente linea para que realice la conexión automáticamente al arrancar:

5

La opción delay_connect retrasa la conexión a la máquina remota. Puede ser que al iniciar el sistema, éste trate de realizar la conexión antes de que se haya levantado la red del equipo, lo cual resultará en que no se termine montando los archivos. Con esta opción nos aseguramos de que esto no pase.

La opción allow_other permite a cualquier usuario acceder a los archivos montados.

Guardamos y reiniciamos el sistema.

Cuando esté levantado de nuevo, probamos con un df si se ha montado automáticamente los archivos:

6

Vemos que hemos tenido un resultado satisfactorio.