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 sshfsInstalar 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 fuseTienes que cargar el módulo:
# modprobe fuseY asegurarte que se carga cuando reinicies:
# echo fuse >> /etc/modulesA montar…
Ya puedes montar cualquier directorio del servidor al que tengas acceso:
# sshfs usuario@servidor.net:/ruta/en/servidor /ruta/en/clientetambién puedes hacer lo mismo con mount, así:
# mount -t fuse sshfs#usuario@servidor.net:/ruta/en/servidor /ruta/en/clienteY 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
fstaby 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 fuseDesmontar
Si eres root:
# umount /ruta/en/clienteComo usuario normal:
# fusermount -u /ruta/en/clienteQué 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.