Cómo montar un directorio o sistema de archivos remoto de Linux usando SSHFS sobre SSH


El propósito principal de escribir este artículo es proporcionar una guía paso a paso sobre cómo montar un sistema de archivos remoto de Linux utilizando el cliente SSHFS sobre SSH.

Este artículo es útil para aquellos usuarios y administradores de sistemas que deseen montar un sistema de archivos remoto en sus sistemas locales para cualquier propósito. Prácticamente lo probamos instalando el cliente SSHFS en uno de nuestros sistemas Linux y montamos correctamente los sistemas de archivos remotos.

Antes de continuar con la instalación, comprendamos sobre SSHFS y cómo funciona.

¿Qué es SSHFS?

SSHFS significa cliente (Secure SHell FileSystem) que nos permite montar un sistema de archivos remoto e interactuar con directorios y archivos remotos en una máquina local utilizando el Protocolo de transferencia de archivos SSH (SFTP).

SFTP es un protocolo seguro de transferencia de archivos que proporciona acceso a archivos, transferencia de archivos y funciones de administración de archivos a través del protocolo Secure Shell. Debido a que SSH usa cifrado al transferir archivos a través de la red de una computadora a otra y SSHFS viene con un módulo de kernel FUSE (Sistema de archivos en el espacio de usuario) incorporado que permite a cualquier usuario sin privilegios crear su sistema de archivos sin modificar el código del kernel.

En este artículo, le mostraremos cómo instalar y usar el cliente SSHFS en cualquier distribución de Linux para montar un sistema de archivos o directorio remoto de Linux en una máquina Linux local.

Por defecto, los paquetes sshfs no existen en todas las distribuciones principales de Linux, debe habilitar el repositorio epel en sus sistemas Linux para instalar sshfs con la ayuda del comando Yum con sus dependencias.

# yum install sshfs
# dnf install sshfs              [On Fedora 22+ releases]
$ sudo apt-get install sshfs     [On Debian/Ubuntu based systems]

Una vez instalado el paquete sshfs, debe crear un directorio de punto de montaje donde montará su sistema de archivos remoto. Por ejemplo, hemos creado un directorio de montaje en /mnt/tecmint .

# mkdir /mnt/tecmint
$ sudo mkdir /mnt/tecmint     [On Debian/Ubuntu based systems]

Una vez que haya creado su directorio de punto de montaje, ahora ejecute el siguiente comando como usuario root para montar el sistema de archivos remoto en /mnt/tecmint . En su caso, el directorio de montaje sería cualquier cosa.

El siguiente comando montará un directorio remoto llamado /home/tecmint en /mnt/tecmint en el sistema local. (No olvide reemplazar x.x.x.x con su dirección IP y punto de montaje).

# sshfs [email protected]:/home/tecmint/ /mnt/tecmint
$ sudo sshfs -o allow_other [email protected]:/home/tecmint/ /mnt/tecmint     [On Debian/Ubuntu based systems]

Si su servidor Linux está configurado con autorización basada en clave SSH, deberá especificar la ruta a sus claves públicas como se muestra en el siguiente comando.

# sshfs -o IdentityFile=~/.ssh/id_rsa [email protected]:/home/tecmint/ /mnt/tecmint
$ sudo sshfs -o allow_other,IdentityFile=~/.ssh/id_rsa [email protected]:/home/tecmint/ /mnt/tecmint     [On Debian/Ubuntu based systems]

Si ha ejecutado correctamente el comando anterior sin errores, verá la lista de archivos y directorios remotos montados en /mnt/tecmint .

# cd /mnt/tecmint
# ls
[[email protected] tecmint]# ls
12345.jpg                       ffmpeg-php-0.6.0.tbz2                Linux                                           news-closeup.xsl     s3.jpg
cmslogs                         gmd-latest.sql.tar.bz2               Malware                                         newsletter1.html     sshdallow
epel-release-6-5.noarch.rpm     json-1.2.1                           movies_list.php                                 pollbeta.sql
ffmpeg-php-0.6.0                json-1.2.1.tgz                       my_next_artical_v2.php                          pollbeta.tar.bz2

Si ejecuta el comando df -hT, verá el punto de montaje del sistema de archivos remoto.

# df -hT
Filesystem                          Type        Size  Used Avail Use% Mounted on
udev                                devtmpfs    730M     0  730M   0% /dev
tmpfs                               tmpfs       150M  4.9M  145M   4% /run
/dev/sda1                           ext4         31G  5.5G   24G  19% /
tmpfs                               tmpfs       749M  216K  748M   1% /dev/shm
tmpfs                               tmpfs       5.0M  4.0K  5.0M   1% /run/lock
tmpfs                               tmpfs       749M     0  749M   0% /sys/fs/cgroup
tmpfs                               tmpfs       150M   44K  150M   1% /run/user/1000
[email protected]:/home/tecmint fuse.sshfs  324G   55G  253G  18% /mnt/tecmint

Para montar el sistema de archivos remoto de forma permanente, debe editar el archivo llamado /etc/fstab . Para hacerlo, abra el archivo con su editor favorito.

# vi /etc/fstab
$ sudo vi /etc/fstab     [On Debian/Ubuntu based systems]         

Vaya al final del archivo y agregue la siguiente línea y guarde el archivo y salga. La siguiente entrada monta el sistema de archivos del servidor remoto con la configuración predeterminada.

sshfs#[email protected]:/home/tecmint/ /mnt/tecmint fuse.sshfs defaults 0 0

Asegúrese de tener un inicio de sesión sin contraseña SSH entre los servidores para montar automáticamente el sistema de archivos durante los reinicios del sistema.

Si su servidor está configurado con autorización basada en clave SSH, agregue esta línea:

sshfs#[email protected]:/home/tecmint/ /mnt/tecmint fuse.sshfs IdentityFile=~/.ssh/id_rsa defaults 0 0

A continuación, debe actualizar el archivo fstab para reflejar los cambios.

# mount -a
$ sudo mount -a   [On Debian/Ubuntu based systems]

Para desmontar el sistema de archivos remoto, jun ejecute el siguiente comando y desmontará el sistema de archivos remoto.

# umount /mnt/tecmint

Eso es todo por ahora, si tiene alguna dificultad o necesita ayuda para montar un sistema de archivos remoto, contáctenos a través de los comentarios y si cree que este artículo es muy útil, compártalo con sus amigos.