¿Cómo montar un sistema de archivos o carpeta remota usando SSHFS sobre
SSH en Ubuntu
¡Trabajadores!

La fuerza no depende del número exclusivamente. La unión es la que hace
la fuerza. Este adagio se ha repetido una y otra vez en la historia,
desde Leónidas hasta nuestros días. Sabemos que entre los hombres, la
argamasa no es otra que la cohesión. Hemos de hermanarnos frente a un
objetivo común, una misión de la que colectiva e individualmente
saldremos beneficiados.

Nuestro causal de unión no es otro que el lema bajo el que se fundó
nuestra República y su software: la Libertad.

Ahora bien, un sistema informático no tiene que permanecer gregario;
bien puede unirse a otros para conformar una herramienta de mayor valía
y servir - a su vez - nuestros designios bajo un porvenir luminoso. GNU
con Linux hace constar esta máxima avalando la posibilidad de ejecutar
programas servidores de múltiples funcionalidades, que permitan a otros
sistemas clientes - ajenos o propios - interconectarse y compartir sus
recursos. Esto puede realizarse de una manera rápida y poco segura, pero
normalmente recomendaré el empleo del estándar Secure Shell (SSH), pues
consta de encriptación punto a punto y se hace de difícil vulneración,
logrando una mayor seguridad para nuestro sistema y el ajeno.

Normalmente esta acción de hermanado suele ser temporal, pero existirán
ocasiones donde querremos que las mismas se solidifiquen y se hagan
permanentes en pos de un uso constante.

Cada computadora a la que queramos conectarnos a través del protocolo
Secure Shell debe contar con el servidor SSH, software libre altamente
útil. Ubuntu Server ya contará con dicha facilidad incorporada por
defecto, pero en el caso de las versiones de escritorio (Ubuntu Desktop)
habremos de instalarlo específicamente, si es que no lo hemos hecho ya.
Para ello, en tales equipos abrimos una terminal presionando Ctrl+Alt+T
e ingresamos:

sudo apt install openssh-server

Si usamos un cliente de escritorio gráfico, ya podríamos montar discos o
directorios en red, de forma temporal o permanente. Simplemente debemos
ir al panel superior y hacer clic en Lugares / Conectar con servidor...
Al hacerlo aparecerá la ventana Conectar con el Servidor.

Esta nos permitirá una variedad de esquemas de trabajo completando los
datos requeridos... podremos asociarnos a servidores FTP Públicos o con
contraseña, compartido de Windows, protocolo Filing de Appe, WebDAV
común y seguro. En este caso como empleamos Linux nos conectaremos a
través del protocolo SSH (Secure Shell) a otro sistema remoto, que
oficiará de servidor.

Normalmente en el campo Servidor debemos ingresar la dirección IP o
nombre de red (host) del equipo remoto, y en el campo Carpeta
normalmente querremos indicar la carpeta de usuario en el servidor
remoto (/home/usuario). Finalmente el nombre de usuario y la contraseña
del usuario (que normalmente corresponden al usuario de la carpeta).

Opcionalmente, si deseamos hacer de este vínculo uno permanente,
podríamos tildar "recordar contraseña" y agregar la carpeta remota a los
Marcadores, con lo cual tendremos siempre el disco de red a mano. Para
desmontar el servidor desde nuestro administrador gráfico, debemos
presionar el botón de desmontaje ("Eject") o hacer clic con el botón
derecho del ratón sobre el ícono de la carpeta montada y elegir la
opción Desmontar.

Ahora bien, en el caso del uso de la terminal, querremos montar desde
allí al disco remoto y operarlo localmente. Esto será útil para
administradores de sistema que quieran montar sistemas de archivo usando
cliente SSHFS sobre SSH, y puedan responder a cualquier propósito de
trabajo. Por ejemplo, tener una red LAN con un servidor de discos NAS, o
contar con un disco de gran capacidad en un equipo remoto y hacer uso de
sus archivos desde un equipo portátil. En fin, cualquier trabajo que
implique "carpetas en red".

Para ello en nuestra terminal emplearemos dicho cliente, que normalmente
no está incluido entre los paquetes por defecto. Abrimos una terminal
con Ctrl+Alt+T e ingresamos:

sudo apt install sshfs

Una vez instalado el paquete SSHFS, necesitamos crear un directorio que
oficiará de punto de montaje para el sistema de archivos remoto.
Conviene hacerlo dentro de la carpeta de sistema /mnt, lo cual
recomiendo hacer. En este ejemplo el punto de montaje local estará
localizado en /mnt/discoevita.

sudo mkdir /mnt/discoevita

Una vez creado el directorio que nos servirá como punto de montaje
local, ejecutamos el siguiente comando como Conductor del sistema, que
montará la carpeta remota /home/evita dentro de la carpeta
/mnt/discoevita de nuestro sistema de archivos local (no olviden
reemplazar 192.168.0.102 con la dirección IP o nombre de red del punto
de montaje):

sudo sshfs -o allow_other [email protected]:/home/evita/
/mnt/discoevita

..Ahora bien, si el servidor remoto está configurado para hacer uso de
autorización basada en llaves SSH, debemos entonces especificarle la
ruta hacia nuestras llaves públicas con el siguiente comando:

sudo sshfs -o allow_other,IdentityFile=~/.ssh/id_rsa
[email protected]:/home/evita/ /mnt/discoevita

Si hemos ejecutado el comando anterior que nos corresponda exitosamente
y sin errores, entonces deberíamos poder tener acceso al listado de los
archivos remotos, espejados dentro del punto de montaje local
/mnt/discoevita. Podremos comprobarlo con los comandos de organización:

cd /mnt/discoevita
ls

También podríamos revisar que el sistema de archivos remoto aparezca en
la tabla de nuestro propio sistema de archivos. Para ello ejecutaremos
el comando:

df -hT

..y nuestra terminal debería devolvernos un resumen de los componentes
de su sistema de archivo, que debe incluir la carpeta remota, de una
forma similar al siguiente:


S.ficheros     Tipo     Tamaño Usados  Disp Uso% Montado en
udev           devtmpfs   1,9G      0  1,9G   0% /dev
tmpfs          tmpfs      388M   6,4M  382M   2% /run
/dev/sda1      ext4       233G   144G   78G  65% /
tmpfs          tmpfs      2,0G    32M  2,0G   2% /dev/shm
tmpfs          tmpfs      5,3M   4,1k  5,3M   1% /run/lock
tmpfs          tmpfs      2,0G      0  2,0G   0% /sys/fs/cgroup
tmpfs          tmpfs      388M    62k  388M   1% /run/user/1000
[email protected]:/home/evita fuse.sshfs  324G   55G  253G  18%
/mnt/discoevita

Con esto sería suficiente para un trabajo temporal, hasta que el
servidor o el cliente se reinicien.

Si deseamos montar el sistema de archivos de forma permanente, para que
toda vez que encendamos el sistema se realice el montaje
automáticamente, debemos editar editar el archivo de configuración del
sistema de archivos, el cual es /etc/fstab. Para ello emplearemos el
editor de texto GNU Nano, ingresando el siguiente comando:

sudo nano /etc/fstab

..se abrirá el editor y cargará el fichero de configuración, que ya
debería contener información. No debemos modificar nada de lo que ya
existe. Debemos ir al final del archivo y agregarle una línea similar a
la siguiente:

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

..y grabamos el archivo (ctrl+o) y salimos del editor (ctrl+x).

Debemos asegurarnos de que hemos configurado el Alta sin Contraseña
entre servidores para automontar el sistema de archivos durante los
reinicio del sistema (de lo contrario, siempre al iniciar el sistema nos
solicitará la contraseña del usuario remoto SSH previo al automontaje de
su carpeta).

En cambio, si el servidor estuviese configurado con una autorización
basada en llave SSH, entonces debemos agregar al archivo /etc/fstab la
siguiente línea:

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

A continuación necesitaremos actualizar la tabla de sistemas de archivos
para hacer efectivos los cambios realizados. Ello lo haremos efectivo
con:

sudo mount -a

..entonces se automontará el disco a través de SSH toda vez que
encendamos el sistema.

Para desmontar el sistema de archivos remoto desde la terminal
ingresamos el siguiente Comando de Organización:

umount /mnt/discoevita