¿Cómo montar sistemas de archivos remotos a través de SSH?

Published:

Por lo general usamos comandos como scp para transferencia de archivos de un server a otro, pero a veces es necesario simplificar el proceso montando un FS en un equipo y poder trabajar mejor, así que hoy examinaremos la herramienta SSHFS para montar un directorio remoto utilizando solo SSH. Esto tiene la ventaja significativa de que no requiere configuraciones complejas y va a utilizar los permisos del usuario SSH en el sistema remoto.

1- Instalación.

Por lo general esta presente en la mayoría de los repositorios Linux, veamos como instalarlo en Ubuntu.

sudo apt install sshfs

2- Montar FS

2.1- Vamos a necesitar una carpeta

sudo mkdir /mnt/shares

2.2- Montado

sudo sshfs -o allow_other,default_permissions USUARIO@SERVER_REMOTO:~/ /mnt/shares

Analicemos las opciones:

  • -o seria equivalente a cuando se ejecuta el comando mount normalmente para montajes de disco que no son SSH. En este caso, está utilizando allow_otherpara permitir que otros usuarios tengan acceso a este montaje (para que se comporte como un montaje de disco normal, ya que sshfslo impide de forma predeterminada) y default_permissions(para que, de lo contrario, utilice los permisos regulares del sistema de archivos).
  • USUARIO@SERVER_REMOTO:~/estamos especificando el usuario, el equipo a conectarnos y la ruta, en este caso ~/para el directorio de inicio del usuario remoto. Esto usa la misma sintaxis que SSH o SCP.
  • /mnt/shareses la ruta al directorio local que se utiliza como punto de montaje.

NOTA: Si nos da un mensaje de Connection reset by peer, es porque este comando funciona como ssh y requiere las llaves.

2.3- Desmontar

sudo umount /mnt/shares

3- Montar de forma permanente

Para lograr esto basta con usar la ubicación fstab.

sudo nano /etc/fstab

Y agregamos lo siguiente

USUARIO@SERVER_REMOTO:~/ /mnt/shares fuse.sshfs noauto,x-systemd.automount,_netdev,reconnect,identityfile=/home/USUARIO/.ssh/id_rsa,allow_other,default_permissions 0 0
  • USUARIO@SERVER_REMOTO:~/Usuario y ruta.
  • /mnt/shares es donde quedará montado localmente.
  • fuse.sshfs especifica el driver que se utiliza para montar este directorio remoto.
  • noauto,x-systemd.automount,_netdev,reconnectson un conjunto de opciones que trabajan juntas para garantizar que los montajes permanentes en unidades de red se comporten correctamente en caso de que la conexión de red se caiga desde la máquina local o la máquina remota.
  • identityfile=/home/USUARIO/.ssh/id_rsaespecifica una ruta a una llave SSH local para que el directorio remoto se pueda montar automáticamente.  Es necesario especificar esto porque /etc/fstab efectivamente se ejecuta como root y, de lo contrario, no sabría qué configuraciones de SSH de nombre de usuario verificar para obtener una clave en la que confíe el servidor remoto.
  • allow_other,default_permissions son los permisos.
  • 0 0significa que el sistema de archivos remoto nunca debe ser volcado o validado por la máquina local en caso de errores. Estas opciones pueden ser diferentes al montar un disco local.

Ahora cada vez que reiniciemos quedará el FS montado, también podemos hacer:

mount -a
- Advertisement -
Jorge
Jorgehttps://nksistemas.com
Soy Jorge, Sr Sysadmin Linux/DevOps/SRE y creador de NKSistemas.com Trabajo con plataformas: Linux, Windows, AWS, GCP, VMware, Helm, kubernetes, Docker, etc.

Related articles