En este artículo os voy a explicar una utilidad que considero bastante útil: SSH-FS (SSH FileSystem, Sistema de Ficheros SSH), que consiste en montar una partición remota vía SSH. Viene a ser como acceder a un servidor FTP, pero montado directamente en nuestro árbol de directorios. Y cifrado, por supuesto.
Conocimientos previos: saber usar un editor de texto, saber cual es tu nombre de usuario, y saber que nombre le vas a dar a “REMOTO” 😉
Al final de este tutorial, obtendrás dos comandos (montar_REMOTO, desmontar_REMOTO) con los que montarás/desmontarás el SSHFS. Y habrás aprendido un poquito de ssh, de bash (chown, chmod), de bashcripting y de aliases (.bash_rc).
Configurar SSH para que no pida password
Lo hemos visto en el HOWTO SSH sin password (for Dummies). Sigue las instrucciones del artículo, no hay mayor complicación.
Instalar SSHFS
apt-get install sshfs
Y se descargará e instalará todo lo necesario.
Preparar el punto de montaje
Tenemos que crear un directorio, y hacer que nuestro usuario sea el propietario. Lo normal sería montarlo en /media/algo, así que tenemos que hacer las siguientes operaciones como root:
- Creamos el directorio:
mkdir /media/REMOTO/
- Cambiamos el propietario:
chown USUARIO /media/REMOTO/
Ahora nuestro usuario es el propietario del nuevo directorio, y podrá montar el sistema remoto ahí.
Comprobar que funciona
- Montar: ejecutamos, como usuario:
sshfs USUARIO@SERVIDOR:RUTA_REMOTA /media/REMOTE
Donde USUARIO es nuestro nombre de usuario remoto,
SERVIDOR es el servidor remoto (dominio o IP),
RUTA_REMOTA es el directorio remoto que montaremos (por ejemplo /home/USUARIO),
/media/REMOTE es donde vamos a montar el sistema de ficheros (lo acabamos de crear en el paso anterior.
- Desmontar: ejecutamos, como usuario:
fusermount -uz /media/REMOTE/
Donde /media/REMOTE es el directorio donde hemos montado el sistema de ficheros.
Crear scripts para hacerlo más usable
Sería un coñazo tener que memorizar esas líneas, ¿verdad? Y si queremos montar varios sistemas remotos (yo ahora mismo tengo 6 configuraciones distintas), ¿cómo evitaremos hacernos un lío?
Es necesario abstraer. Vamos a hacerlo en dos pasos: en primer lugar crearemos bashscripts, para montar/desmontar fácilmente, y en segundo lugar haremos aliases, para que se puedan llamar desde la consola.
Bashcripts
Crearemos dos scripts de bash. Es recomendable guardarlos en un directorio específico, en mi caso guardo todos mis scripts en ~/bash
- Script de montar
Creamos un archivo: montar_REMOTO.sh, con el siguiente contenido:
#!/bin/bash
REMOTE=TU_SERVIDOR_REMOTO
USER=TU_NOMBRE_DE_USUARIO_REMOTO
RUTA_REMOTA=/home/TU_USUARIO
RUTA_LOCAL=/media/REMOTO
echo “Intentamos montar $REMOTE…”
sshfs $USER@$REMOTE:$RUTA_REMOTA $RUTA_LOCAL
(Sí, tienes que modificar lo que está tachado y en negrita por tus propios datos)
Pongo la siguiente captura como ejemplo:
Le damos permiso de ejecución:
chmod +x montar_REMOTO.sh
- Script de desmontar
Creamos un archivo: desmontar_REMOTO.sh, con el siguiente contenido:
#!/bin/bash
REMOTE=REMOTO
echo “Intentamos desmontar $REMOTE…”
fusermount -uz /media/$REMOTE/
Como antes, cambia REMOTO por tus datos: el directorio donde has montado el sistema SSHFS.
Pongo la siguiente captura como ejemplo:
Le damos permiso de ejecución:
chmod +x montar_REMOTO.sh
Bien, ahora tenemos dos scripts a los que podemos llamar para montar y desmontar:
sh ~/bash/montar_REMOTO.sh
sh ~/bash/desmontar_REMOTO.sh
Pero ¡queremos más!
Aliases
Queremos llamarlos mediante un simple comando (montar_REMOTO, desmontar_REMOTO), para no tener que memorizar comandos largos con rutas ;-).Editamos el fichero .bashrc. El contenido de ese fichero se ejecuta cuando iniciamos un terminal, así que pondremos los aliases ahí dentro.
gedit ~/.bashrc
Añadimos las siguientes líneas:
alias montar_REMOTO=’~/bash/montar_REMOTO.sh’
alias desmontar_REMOTO=’~/bash/desmontar_REMOTO.sh’
Y ¡ya está! Cerramos el terminal y lo volvemos a abrir (para que recargue el .bashrc), o simplemente lo ejecutamos (source .bashrc
)
Ahora, cada vez que ejecutemos los comandos, se montará/desmontará sin mayores complicaciones.
Dejad cualquier duda, sugerencia, o jamón de Guijuelo en los comentarios.
Pingback: meneame.net
Y no solo eso.. tener montado un sshfs es como una unidad de disco más (y si tienes contratado el hosting en dreamhost o en bluehost, por ejemplo, tendrá bastantes GB). Es decir que puedes mandar todos tus documentos allí para trabajar con ellos desde cualquier lugar, en tiempo real (casi).
Tambien puedes programar copias de seguridad y/o sincronización de ficheros. En fin lo que se te ocurra.
Estoy haciendo pruebas y creo que es interesante activar la compresion.
Saludos
Jeje, para tener acceso “a tiempo real” más te vale disponer de una buena conexión 😉
Lo de sincronizar sí que es una buena idea.
La verdad, tenía pensado el sistema como comodidad, y no como eficiencia
Hola! tengo un problema con el sshfs, estoy usando Fedora 7 y solo monta los discos remotos como superusuario, no tengo ni idea por que alguno se le ocurre como cambiar esto?? gracias!