Unidad remota en linux con sshfs

Si tenemos dos equipos con linux y queremos montar una unidad remota de uno en otro utilizando la seguridad de conexiones ssh, nuestra solución es SSHFS.

Con SSHFS podemos trabajar con una unidad de disco remota como si fuera propia. Para esto, si tenemos ubuntu o debian, tenemos que hacer lo siguiente:

apt-get install sshfs

Simplemente con esto ya lo tenemos instalado. Ahora, falta montar la unidad. Necesitamos tener un directorio en el equipo local donde montar la unidad remota, esto es, que a través de ese directorio será como accederemos a los datos del disco remoto.

Suponiendo que el directorio donde queremos montar el disco remoto es /mnt/remotedisk, que la máquina remota está en la dirección 192.168.0.100, el directorio remoto es /home/john y que el usuario remoto se llama john, el comando a ejecutar desde consola sería este:

sshfs -o password_stdin -p 22 john@192.168.0.100:/home/john /mnt/remotedisk

En este comando, 22 es el número del puerto donde en la máquina remota el servicio ssh está escuchando, por defecto siempre el 22. Con el parámetro de “password” hacemos que se solicite el password por consola.

Si quieres, puedes crear un script bash para automatizarlo e incluir la password, de tal forma que se monte automáticamente al ejecutarlo. Supongamos el script montar_remoto.sh con el contenido:

#!/bin/bash
echo “password” | sshfs -o password_stdin -p 22 john@192.168.0.100:/home/john /mnt/remotedisk

 
Se le da permisos de ejecución y lectura sólo a tu usuario, por aquello de que lleva la contraseña escrita y mejor que nadie la pueda leer:

chmod 700 montar_remoto.sh

Y para ejecutarlo simplemente:

./montar_remoto.sh

Y eso es todo!! Así de sencillo!. Con esto, podrás tener dentro de /mnt/remotedisk montado el directorio /home/usuario del otro equipo y con la seguridad de conexiones ssh.

Para Windows existen algunas alternativas, algunas de pago, como expanddrive, y otras open source, como dokan.