Sep162008

¿Conocías… SSHFS?

racias a esta aplicación podréis tener una carpeta en un PC remoto y trabajar con/en ella como si fuera local, con transparencia total y la seguridad que ofrece SSH al estar usándose por debajo.

Como siempre en esta sección está al alcance de tu aptitude/apt-get:

$ sudo aptitude install sshfs

SSHFS necesita el módulo “fuse” para poder funcionar, por lo que tendréis que ejecutarlo siempre. Para que no lo tengáis que hacer a mano y lo cargue el sistema automáticamente (y para comprobar si ya lo cargáis o no), abrid el fichero /etc/modules y comprobad si está:

$ sudo gedit /etc/modules

Si está, no tenéis que hacer nada más, cerrad gedit. Los que no lo tengáis simplemente agregad “fuse” al final del fichero por ejemplo, guardáis y cerráis gedit.

Los que lo hayáis metido ahora tenéis dos opciones para cargar fuse, reiniciar y que se cargue automáticamente mediante el archivo modules o cargarlo manualmente hasta que reiniciéis. Supongo que preferís la segunda opción:

$ sudo modprobe fuse

Hecho esto el último requerimiento que necesitamos es tener el servidor SSH funcionando.

En cuanto a configuración tan sólo tenéis que agregar vuestra cuenta al grupo que tiene acceso a fuse:

$ sudo usermod -G fuse -a tu_cuenta

Os aconsejo que ahora reiniciéis el entorno gráfico (Ctrl+Alt+Backspace) para tener la certeza de que se aplique vuestra adicción al agregado grupo, en caso contrario es muy probable que os dé un error de permisos si seguís adelante.

En el fondo ya está todo. Tenéis todo listo para montar la carpeta remota en vuestra carpeta local. Vamos a probarlo. Cread una carpeta donde queráis. Para que os sirva de ejemplo voy a crear la carpeta “pepino” en “/home/ceec/”. Tan sólo teneíes que cambiar “ceec” por vuestra cuenta en los siguientes pasos.

$ mkdir /home/ceec/pepino

La carpeta “pepino” va a ser el punto de montaje de la carpeta remota. Es decir, cuando acceda a “pepino” voy a acceder a la carpeta del otro ordenador. En principio para montarla tan sólo tenéis que hacer esto:

$ sshfs ceec@192.168.1.4:/home/ceec /home/ceec/pepino/

Los que ya sabéis cómo funciona SSH no os habréis sorprendido, los que no tranquilos, es fácil de entender:

  • sshfs es el comando que va a realizar el montaje remoto
  • ceec es la cuenta a la que tenéis acceso en el equipo remoto. En mi caso es el portátil y se llama también ceec, como en el equipo de sobremesa.
  • 192.168.1.4 es la ip del portátil en la red local. Puede usarse perfectamente una IP pública (la de internet) para acceder desde el trabajo a casa por ejemplo.
  • /home/ceec es la carpeta del ordenador remoto que quiero montar en…
  • /home/ceec/pepino/ que es la carpeta del equipo que tengo delante.

Supongo que ya lo habéis entendido bien. Pero hay un pequeño problema. Si no habéis sido previsores funcionará sin problema ya que SSH y por consiguiente SSHFS usan el puerto 22 por defecto. Si no habéis seguido el manual de SSH donde os recomendaba entre otras cosas que cambiarais el puerto os habrá funcionado. Los que sí me hicieran caso, no les habrá funcionado porque el puerto que usáis en SSH no es el 22.

Para indicarle a SSHFS qué puerto hay que usar es igual que en SSH, es decir:

$ sshfs -p 8448 ceec@192.168.1.4:/home/ceec /home/ceec/pepino/

Siendo 8448 el puerto del ordenador remoto. Ahora no debería daros ningún problema. Id a la carpeta que hayáis montado (en el ejemplo /home/ceec/pepino/), entrad y veréis que aparecerán todo lo que tuviérais en la carpeta que le hayáis indicado del equipo remoto (en el ejemplo /home/ceec).

A partir de este momento, todo lo que borréis, añadáis, modifiquéis… de esa carpeta, lo haréis también de la carpeta del otro ordenador.

Tan sólo queda un detalle por enseñaros. Una vez montada la carpeta… ¿cómo se desmonta?

$ fusermount -u /home/ceec/pepino

Listo. Es un buen método para tener algo de vuestro ordenador siempre accesible, o bien para trabajar directamente sobre tus archivos remotos, o bien para compartir lo que queráis a modo de FTP casero o algo parecido. Hay otras alternativas como SFTP y SAMBA, pero hay un punto a favor muy bueno para usar SSHFS, su facilidad de instalación, configuración, uso y, sobre todo, su seguridad ya que toda la información que viaje de un equipo al otro estará encriptada.