Compartir ficheros con SSHfs
Cómo montar un directorio de otra máquina que tenga un servidor de SSH utilizando el paquete sshfs
Se puede obtener una funcionalidad similar a NFS pero con algunas ventajas.
- No necesitas nada especial en el servidor, sólo el omnipresente servidor de SSH. Ni portmap ni nada por el estilo, como ocurre con NFS
- Todas las comunicaciones van cifradas, es más seguro y fácil de administrar.
Obviamente es sensiblemente más lento.
Ingredientes para el servidor
Únicamente el servidor SSH convencional.
Ingredientes para el cliente
En el cliente (el que monta el directorio remoto) debes instalar el paquete sshfs
, que depende de fuse
, pero que usando apt-get no es ningún problema.
# apt-get install sshfs
Instalar fuse (si no lo tienes)
Después hay que instalar el driver de fuse
, que permite tener sistemas de ficheros en espacio de usuario. Para ello se instala los fuentes de fuse y se compilan con el maravilloso module-assistant.
# apt-get install linux-headers-$(uname -r)
# m-a a-i fuse
Tienes que cargar el módulo:
# modprobe fuse
Y asegurarte que se carga cuando reinicies:
# echo fuse >> /etc/modules
A montar…
Ya puedes montar cualquier directorio del servidor al que tengas acceso:
# sshfs usuario@servidor.net:/ruta/en/servidor /ruta/en/cliente
también puedes hacer lo mismo con mount
, así:
# mount -t fuse sshfs#usuario@servidor.net:/ruta/en/servidor /ruta/en/cliente
Y lo puedes añadir a /etc/fstab
:
sshfs#servidor.net:/ruta/en/servidor /ruta/en/cliente fuse defaults 0 0
Montar como usuario “raso”
Hay dos formas de conseguirlo:
- Añadir el flag “user” a la entrada en
fstab
y usar mount/umont como de costumbre - Añadir el usuario al grupo fuse y usar el comando
sshfs
. Eso lo puedes hacer con:
# addgroup pepe fuse
Desmontar
Si eres root:
# umount /ruta/en/cliente
Como usuario normal:
# fusermount -u /ruta/en/cliente
Qué rollo de claves!
Si no quieres tener que poner la clave de tu cuenta en la máquina remota cada vez que montas, puedes utilizar el esquema de autenticación por clave privada que tiene SSH.