Montar particiones remotas mediante SSH utilizando Dokan bajo Windows

Bajo Windows hay una alternativa aún en desarrollo para montar particiones remotas a través de SSH, tal y como se puede hacer con Linux fácilmente.

Bajo Linux, se utiliza el módulo SSHFS de la librería Fuse cuya función es la de permitir implementar sistemas de archivos en programas en el espacio del usuario.  Bajo Windows es necesario utilizar el proyecto opensource Dokan el cual es análogo a Fuse.

Del sitio de descargas de Dokan se deben obtener los siguientes archivos.

Estos archivos se deben descomprimir y obtener los siguientes archivos los cuales se deben instalar en el orden sugerido.

  1. DokanInstall32.msi
  2. DokanSSHFSInstall.msi

Para realizar la conexión de un sistema de archivos remoto se debe ejecutar la aplicación DokanSSHFS.exe.  Para hacer esto es posible utilizar el acceso directo, DokanSSHFS, que se encuentra en el escritorio y el menú de inicio o ejecutar la aplicación directamente en su lugar de instalación, el cual es por defecto C:Program FilesDokanDokanSSHFS (Windows Vista).

Al ejecutar la aplicación esta agrega un ícono (dokaniconobarratareas) en la barra de tareas desde el cual se puede realizar la conexión (mount) y desconexión (umount) de los sistemas de archivos remotos.

Diálogo de conexión - Dokan SSHFS
Diálogo de conexión - Dokan SSHFS

En el diálogo de conexión se establece la siguiente información.

  • Host: dirección IP o nombre FQDN del servidor SSH remoto.
  • User: nombre de usuario.
  • Port: puerto del servicio.  El puerto SSH por defecto es el 22.
  • Método de autenticación:
    • Contraseña.
    • Llaves RSA (mas información para Linux y Windows).
  • Server Root: directorio remoto de montaje.
  • Drive: letra de la unidad local.
Directorio remoto montado.
Directorio remoto montado.

A pesar de que Dokan no es una aplicación terminada y que se encuentra en contínuo desarrollo, las versiones que probé (0.4.2.1238/0.2.0.1226) parecen ser bastante funcionales.  El proyecto amerita mas pruebas, sin embargo creo que me será útil para mis necesidades, que por cierto no son complejas, crear/editar/remover archivos de texto en los servidores de hosting web.

Enlaces.

Montar particiones remotas mediante SSH utilizando SSHFS bajo Linux

Otro goodie muy interesante que es posible realizar con la ayuda de SSH es la de montar particiones remotas mediante este protocolo, y por supuesto, de manera segura.  Con esto ya no necesito Samba para la mayoría de mis tareas diarias y es posible realizarlo a través de una red insegura como Internet.  En este caso la velocidad, disminuída por la encriptación, es la variable a tener en cuenta.

Estas son las cosas que me permiten hacer los sistemas operativos estilo *nix que me hacen sentir estar realmente utilizando un sistema operativo de verdad y no el de una consola de videojuegos.  Cómo se haría esto en Windows ?  No tengo la menor idea, sin embargo no se me había ocurrido investigar y está tan interesante la idea que voy a experimentar un poco al respecto.

A continuación se relacionan los pasos necesarios para montar un  sistema de archivos remoto mediante la utilización de SSH.

Instalación del módulo fuse.

Las distribuciones modernas incluyen por defecto a este módulo, sin embargo si no se cuenta con él se puede instalar de la distribución nativa.  Para instalarlo en OpenSuse 11.1 se debe ejecutar el siguiente comando.

$ zypper install fuse

Requisitos del usuario local.

El usuario local que va a realizar la conexión debe pertenecer al grupo fuse para poder utilizar este módulo del Kernel para hacer el montaje.  Este paso no fue necesario en mi estación de trabajo con OpenSuse 11.1, sin embargo entiendo que en algunas otras distribuciones es necesario.

$ sudo usermod -G fuse -a usuario_local

Después de incluír al usuario en el grupo es necesario cerrar sesión y volver a ingresar a la cuenta para que los cambios sean tenidos en cuenta.

Cargar el módulo de fuse en memoria.

Es posible realizar la carga del módulo de dos maneras: desde la línea de comando que permite incluírlo temporalmente, es decir, es necesario hacerlo cada vez que se inicia la máquina o configurando al sistema operativo para que lo cargue automáticamente durante su inicio, con esto se garantiza que siempre se encuentre disponible.

Carga temporal del módulo fuse.

$ sudo /sbin/modprobe fuse

Carga regular del módulo fuse.

En la mayoría de Linux esta actividad se realiza ejecutando el siguiente comando.

$ sudo sh -c “echo fuse >> /etc/modules”

Para OpenSuse 11.1 encontré que se debe realizar un procedimiento diferente.

  1. $ sudo vi /etc/sysconfig/kernel
  2. Ubicar la sección MODULES_LOADED_ON_BOOT.
  3. Agregar la palabra fuse entre las comillas.  Si existen mas módulos, estos se separan con espacios.
  4. Ejecutar el siguiente comando para cargar inmediatamente los módulos especificados.$ /etc/init.d/boot.loadmodules restart

Instalar SSHFS.

SSHFS es la parte del proyecto Fuse que nos permite la mágia de realizar el montaje del sistema de archivos remoto.  Para instalar este paquete en OpenSuse 11.1 se ejecuta el siguiente comando.

$ sudo zypper install sshfs

En Ubuntu 8.x es necesario ejecutar el siguiente comando.

$ sudo apt-get install sshfs

Realizar el montaje.

De manera similar a la carga del módulo, el montaje se puede realizar de dos maneras: temporal (sólo para la sesión) o permanente (cada vez que se inicie el sistema operativo).

Montaje temporal.

$ sshfs usuario@servidor:/directorio_remoto /directorio_local

Montaje permanente.

$ sudo vi /etc/fstab

sshfs#usuario@servidor:directorio_remoto  directorio_local    fuse    defaults,noauto

Mantener viva la conexión.

Esta modificación hace que se envíen paquentes con una mayor frecuencia cuando se deje de transmitir información por un tiempo prolongado entre cliente y servidor con el fin de evitar que la conexión finalice (timeout) manteniéndola viva.

$ vi /etc/ssh/ssh_config

ServerAliveInterval  120

Desmontar sistemas de archivos montados con sshfs.

$ fusermount -u directorio_local

Si el sistema de archivos fue montado mediante el segundo método: montaje permanente, este puede ser desmontado normalmente con el comando umount.