Tuesday 31 July 2007

Usos de SSH : Montar unidad de Red con sshfs

Una de las ventajas fundamentales que para mi tiene Mac OS X es el Unix que corre por debajo de todas esos impresionantes gráficos, porque gracias a ello podemos tener acceso muy fácilmente a desarrollos Open Source diseñados originalmente para Linux (pero que se han portado a Mac OS X) y tenemos el terminal que nos permite hacer muchísimas cosas como por ejemplo encriptar comunicaciones realizadas a través de Internet mediante SSH.

Intentaré hacer unos cuantos posts sobre diferentes usos de esta herramienta, como hacer túneles SSH para evitar firewalls o simular IPs de otro país, controlar nuestro Mac remotamente a través de Internet mediante una conexión segura y éste en concreto será sobre como conectar un servidor SSH como unidad de red para poder acceder desde el Finder con total comodidad.

De esta manera el servidor donde tenéis alojada vuestra web, algún ordenador que tenéis en casa o incluso una red privada que os queráis montar entre un grupo de amigos estará al alcance de vuestro Finder a través de Internet y con las comunicaciones encriptadas.
La herramienta que nos permite ésto es sshfs, que a su vez está basado en FUSE. Ésta herramienta nos permite montar un sistema de archivos a través de una conexión SSH, con lo que al sistema operativo le aparece como una unidad de disco más.

Para instalar en Mac OS X muchos de éstos proyectos Open Source tenemos Macports y Fink, ambas son herramientas que nos permiten descargarnos e instalar los proyectos que necesitemos y sus dependencias en versiones adaptadas para su funcionamiento en Mac OS X. Ambos productos pueden coexistir y de hecho son en parte complementarios puesto que habrá software que solo se encuentre en uno de ellos, yo para este ejemplo voy a utilizar Macports.

Así, y ya he acabado con la teoría y empiezo con la práctica, lo que haremos serán los siguientes pasos:

  • Descargar la última versión de Macports.
  • Instalar el paquete que nos hemos descargado, Macports se instala en /opt/local.
  • Abrimos una sesión de terminal y escribimos los siguientes comandos. Para algunos de ellos necesitaremos permisos de administrador y por tanto deberemos introducir la contraseña cuando nos lo pidan.
    • sudo /opt/local/bin/port selfupdate
      • Esto actualizará Macports y su directorio a las últimas versiones disponibles.
    • sudo /opt/local/bin/port install sshfs
      • Esto descargará e instalará sshfs en nuestro ordenador, así como todas las librerías y dependencias que necesite.
  • Para poder montar nuestras unidades a través de SSH necesitaremos tener unos directorios locales en nuestro Mac, Mac OS X monta sus unidades en /Volumes, por tanto para las nuestras debemos evitar usar ese directorio. Yo personalmente sigo la misma lógica que la mayoría de distribuciones Linux y los monto en /mnt. Ahora suponiendo que queremos conectar nuestro servidor SSH "dominio.com" los pasos serían.
    • mkdir /mnt
      • Sólo hará falta hacerlo una vez, el resto de pasos serían necesarios para cada servidor que queramos conectar.
    • mkdir /mnt/dominio.com
      • Aquí podemos poner el nombre que nos asocie con el servidor que vamos a montar.
    • sshfs tu_usuario@dominio.com:directorio_remoto /mnt/dominio.com -oping_diskarb,volname=Nombre_Finder
      • Aquí hacemos la conexión, "tu_usuario" será el usuario con el que inicias la sesión SSH, "directorio_remoto" será donde quieres conectarte, si no lo sabes puedes usar el raiz ("/") y lógicamente podrás poner el nombre que quieras a tu nueva unidad de disco en "Nombre_Finder". Así un ejemplo que funcionaría sería:
        • sshfs pedro@dominio.com:/ /mnt/dominio.com \ -oping_diskarb,volname=dominio.com
    • Si ahora vas al Finder deberías ver esta nueva unidad y trabajar normalmente con ella (copiar, mover, borrar archivos...) y cuando quieras acabar de trabajar con ella expulsarla normalmente como harías con cualquier unidad de red o DVD.
Bien, pues ya deberías tener esa unidad de red funcionando y a partir de ahora actualizar tu página web o descargarte los archivos de casa al trabajo o a la inversa debería ser mucho más cómodo.

En otro post intentaré poner un script que automatice la conexión y el montaje de la unidad de red, del tipo si el servidor está disponible monta la unidad, en cuanto deja de estarlo la desmonta, pero eso será en cuanto tenga tiempo de mirarlo.

Parte de la información de éste post está basada en este post de downloadsquad, y aquellos valientes que quieran hacerlo todo manualmente ahí podrán seguir las instrucciones detalladas.

No comments: