SSH (Secure Shell) es un protocolo que nos permite acceder en forma segura a equipos remotos y sus posibilidades son enormes ya que básicamente lo que estaremos haciendo al utilizarlo es disponer de un servidor tal y como si estuviésemos sentados frente a su pantalla y teclado. Hoy en día se encuentra disponible en *nix a través de OpenSSH, la implementación abierta que llegó allá por 1999, y vamos a mostrar una posibilidad muy interesante para los administradores de sistemas como es la de montar directorios remotos en un equipo local mediante SSHFS.
Gracias a ello podremos utilizar un directorio de un equipo remoto como parte de la estructura de directorios de nuestro equipo local, con las consiguientes ventajas como la de poder utilizar scripts y demás en forma más simple. Y claro, también podremos utilizar un explorador de archivos y gracias a ello copiar o mover archivos y carpetas mediante arrastrar y soltar, así que veamos como comenzar.
Lógicamente, lo primero que vamos a necesitar es contar con una instalación ya funcionando de OpenSSH en el servidor al cual vamos a acceder y también en el cliente. Después llega el momento de instalar sshfs, algo bien simple gracias a que esta herramienta ya se encuentra disponible en el repositorio oficial de Ubuntu (y además, a su reducido tamaño de menos de 50 Kb, por lo cual se instala en unos pocos segundos):
#apt-get install shfs
Ahora que hemos instalado sshfs tenemos que utilizarlo atendiendo a su uso, similar a ssh en el hecho de que vamos a tener que autenticarnos mediante el usuario y contraseña, motivo por el cual está de más decir que dicho usuario debe ser una cuenta válida en el equipo remoto (en nuestro ejempo será el equipo con IP 192.168.1.100).
sshfs usuario@equiporemoto:/ruta/hacia/directorio
Entonces lo que necesitamos es crear el directorio local que va a apuntar hacia el directorio remoto (que en nuestro ejemplo puede ser /home/programas), lo cual hacemos de la siguiente manera:
#mkdir /mnt/servidor
Después montamos el directorio remoto en este directorio, haciendo:
#sshfs root@192.168.1.100:/home/programas / /mnt/servidor
Se nos pedirá la clave de root en el equipo remoto, que debemos conocer así que la ingresamos y luego de esto ya habremos montado el servidor remoto en nuestro equipo local. Algo que podemos comprobar fácilmente si ejecutamos:
$df -h
O:
ls -l /mnt/servidor
Una vez que comencemos a utilizar esto seguramente sabremos apreciar la gran comodidad que nos ofrece, y si ese es el caso puede que deseemos que este proceso sea realizado en forma automática cuando iniciamos nuestro equipo. Y podemos conseguirlo, para lo cual tenemos que editar el archivo /etc/fstab:
#vi /etc/fstab
Añadimos la siguiente entrada:
sshfs#$root@192.168.1.100:/ /mnt/servidor fuse defaults,idmap=user,allow_other,reconnect,_netdev,users 0 0
Con esto ya tendremos lo deseado, pero podemos ir más lejos y si nuestro equipo tiene al controvertido systemd como sistema de inicio podemos utilizar el montaje ‘por demanda’, es decir que será realizado en forma automática cuando lo necesitemos (por ejemplo, cuando intentemos acceder al directorio local que está enlazada con el directorio remoto).
usuario@equiporemoto:/home/programas/ /mnt/servidor fuse.sshfs noauto,x-systemd.automount,_netdev,users,idmap=user,allow_other,reconnect 0 0