05 – sshfs – (OpenSSH 02)

Bienvenidos a este quinto episodio de deployando.me, el podcast de tecnología para sysadmins y devops. Soy Rodolfo Pilas y estoy grabando el 22 de noviembre de 2016.

Sigo muy contento con esta experiencia que he emprendido en el podcasting.  Me divierto mucho en pensarlo, hacerlo, grabarlo y publicarlo cada semana.  Una de las cosas que más me motiva es el desafío de hacerlo bien en todos sus aspectos: desde lo técnico en el audio, la profundidad del guión y la composición final.

También sigo expectante las métricas de aceptación que está teniendo entre Ustedes, los escuchas.   Durante la semana mantenemos un promedio de ocho a diez escuchas diarios. Seguramente, comparado con otros podcast son unas estadísticas sean muy humildes pero me tienen muy contento y conforme, así que gracias por suscribir este podcast en iVoox, iTunes o Stitcher.

Si tu escuchas esto directo en el web deployando.me te sugiero que experimentes con una aplicación para seguir y escuchar podcast.  Que aproveches a recorrer el mundo del podcasting. Recuerda que el podcast es radio ‘a demanda’ y tu puedes seleccionar tus contenidos y tus momentos para escuchar lo que te interesa.

Así agradezco a todos Ustedes, escuchas y seguidores en las redes sociales, en twitter en @deployandome y en los catálogos de podcasting.

Vamos por el segundo podcast de la serie de OpenSSH y esta vez les traigo una de las más antiguas herramientas de ssh que conozco: SSHFS.

Fue 2006, hace 10 años, que escribí un artículo en mi blog pilas.guru al que le puse el aparatoso título de “SSHFS: La puerta de la libertad” en el cuál contaba que había recibido mi edición de la revista Linux Journal con un artículo que había llamado mi atención titulado “SSHFS: Super Easy File Access over SSH”

Y es que es así, SSHFS es una herramienta muy útil que ha significado para mi la posibilidad de ampliar el alcance de mis aplicaciones locales al conjunto de servidores remotos.

SSHFS permite montar, es decir presentar en el filesystem local, un filesystem remoto mediante una conexión ssh.

Entonces SSHFS es un cliente de OpenSSH para montar un filesystem remoto y, como todos los servidores GNU/Linux soportan el protocolo ssh, es muy fácil utilizarlo sin que sea necesario ninguna configuración del lado del servidor.

Del lado del cliente, es tan fácil como hacer una conexión ssh.

Una vez que tienes montado el filesystem remoto en tu equipo local, puedes abrir tu navegador de archivos preferido, tu editor de texto o la aplicación que quieras para moverte, acceder y modificar los archivos remotos.

SSHFS está basado en el conocido FUSE cuyo nombre deriva de Filesystem in Userspace que es un framework para filesystem en el espacio de usuarios en Linux.

Entre las características más relevantes de SSHFS está el ser  Multithreading, es decir que permite más de un request a la vez al servidor. También hace un caching de los contenidos de los directorios remotos para una mejor experiencia de uso.

Otra cosa muy interesante es que SSHFS reconecta ante una caída, bueno el cliente ssh reconecta también.

El uso de SSHFS, como ya dije es muy simple, casi igual que establecer una conexión ssh, pero con la sintaxis de mount, o sea, sshfs y dos parámetros:

El primero el usuario@servidor.destino: (tal cual una conexión ssh)

El segundo: punto_de_montado local, por ejemplo /mnt

Así una vez levantada la conexión, al listar el contenido de /mnt veremos los archivos del servidor remoto y podremos usar las herramientas locales.

Para desmontar se puede utilizar la interfaz gráfica o directamente el comando umount, aunque en mucha documentación podrás encontrar el comando fusermount -u, que era lo que se utilizaba en versiones previas del comando umount.

A partir de que conocí SSHFS lo he preferido utilizar frente a otras opciones como Secure FTP o incluso el comando SCP de Secure Copy.

Por ejemplo, para pasar los archivos que descargo por el servidor torrent que tengo en la RaspberryPI de mi casa, utilizo sshfs para eso. Así lo explico en el artículo  “Raspberry Pi como cliente torrent” que publiqué en mi blog en el 2013.

SSHFS es muy bonito y util, como ya te estarás dando cuenta. Pero tampoco es un reemplazo a los sistemas de servidores de archivos tradicionales.  SSHFS es muy costoso para utilizar como sistema de filesystem remoto en ambientes de producción de forma continua, por un lado en CPU pues estarás cifrando todo el tráfico y por otro en optimización de ancho de banda.

En resúmen, SSHFS te ayudará en montar y utilizar rápidamente un filesystem remoto; pero no lo uses para alojar los archivos de un motor de base de datos o para procesos de respaldo de archivos.   Como siempre debemos usar la herramienta adecuada en los entornos correspondientes.

SSHFS es un software libre disponible bajo licencia GPLv2 que puedes leer y aprender de su código en lenguaje C que está publicado en Github, hacer tus modificaciones y compartirlo con quien quieras.

Si no conocías SSHFS te invito a que instales SSHFS, lo pruebes y me dejes hagas llegar tus impresiones. Si ya lo has utilizado, seguro tienes opiniones sobre él; así que también me gustaría saber cómo y cuándo lo usas.

Soy Rodolfo Pilas, en twitter me siguen por @pilasguru y les dejo un saludo a todos, confiando en que este podcast les haya aportado para mejorar y, como siempre, espero sus inquietudes y sugerencias comentando en deployando.me

Referencias