Este es uno de los capítulos del tutorial La Raspberry Pi. Primera primeros pasos.. Encontrarás los enlaces a todos los de capítulos, al final de este artículo.
En artículos anteriores, hemos instalado un par de servicios para compartir archivos en nuestra red. Me refiero en particular a NFS y Samba. En el artículo de hoy vamos a ver otras dos opciones para compartir archivos, accediendo de forma remota a nuestra Raspberry Pi, sin la necesidad de instalar ningún servicio, simplemente trabajando sobre SSH. En particular me refiero a compartir archivos mediante SFTP y SSHFS.
Como de viene siendo habitual en esta serie de artículos, indicarte que el uso de una u otra tecnología a la hora de compartir archivos dependerá del sistema operativo del dispositivo que utilices. Desde luego, si utilizas cualquier distribución Linux, ten por seguro que vas a poder utilizar cualquiera de los dos protocolos. Esto, como verás, te abrirá todo un mundo de posibilidades.
Por otro lado, además de las prestaciones que te ofrece cada uno de los servicios, debes tener en cuenta las medidas de seguridad necesarias. Me refiero a que si bien, NFS es, sin duda, el más rápido, hay que tener en cuenta que no está cifrado. Desde el punto de vista de la velocidad tanto SFTP como SSHFS son los mas lentos, sin embargo, desde el punto de vista de la seguridad, son los mas confiables.
Resumiendo, que además de elegir el medio de comunicarte, en función de tus otros interlocutores, también debes tener en cuenta el lugar donde lo haces.
Dicho esto, vamos a ver como compartir archivos mediante SFTP y SSHFS.
Compartir archivos mediante SFTP y SSHFS
Como de costumbre, indicar que esta serie de artículos están dirigidos a usuarios de distribuciones Linux. Si, por cualquier extraña razón, no te encuentras en el lado de la fuerza, piensa seriamente en dar el paso hacia una vida mejor, y deja las malas compañías.
SFTP
SFTP es un protocolo que proporciona acceso a archivos, transferencia y gestión de archivos vía SSH. Es decir, que añade la característica de FTP a SSH. Sus siglas significan, como te puedes imaginar, SSH File Transfer Protocol. Sólo utiliza un canal de comunicación, enviando y recibiendo la información en binario, no en modo de texto.
Utilizando este protocolo, puedes modificar, editar y navegar entre todos los archivos que se encuentren en la Raspberry Pi de una forma muy sencilla. Es tan sencillo de utilizar como FTP, y la ventaja es que como Raspbian tiene habilitado por defecto SSH, no necesitas realizar ninguna acción adicional para utilizarlo.
Uso desde nuestro equipo
Desde el explorador de archivos
Si utilizas como entorno de escritorio, GNOME, MATE o Cinnamon, la solución es muy sencilla. Y digo que es muy sencilla, puesto que puedes acceder desde el propio explorador de archivos Nautilus, Caja o Nemo respectivamente.
En mi caso, que utilizo GNOME, los pasos son los que te voy a mostrar a continuación. Indicarte que tanto en MATE como en Cinnamon, los pasos son exactamente los mismos.
- Abre Nautilus (Nemo o Caja) en tu equipo
- Selecciona en el panel derecho la opción Otras ubicaciones
- Una vez seleccionado Otras ubicaciones, puedes introducir la dirección del servidor, por ejemplo,
sftp://pi@192.168.1.48/
donde,
- pi es el nombre de nuestro usuario
- 192.168.1.48 es la dirección IP de nuestra Raspberry Pi
Y al pulsar el botón Conectar apareceremos en el interior de la Raspberry Pi.
Desde un cliente FTP específico como es Filezilla
En otro caso, también puedes utilizar Filezilla, que es un cliente FTP realmente sencillo de utilizar. Al ser multiplataforma está disponible para cualquier distribución GNU/Linux, así como para otros sistemas operativos como Windows o MacOSX.
En este caso, tal y como puedes ver en la siguiente captura de pantalla, es necesario que indiques el servidor, precedido por supuesto del protocolo, el nombre de usuario y la contraseña. En caso de que no utilices el puerto estándar, también deberás indicarlo.
SSHFS
SSHFS permite montar un sistema de archivos remoto utilizando el protocolo SFTP. Se trata de un protocolo que la mayoría de los servidores SSH soportan, y tiene la ventaja de que trabajas en el sistema de archivos de la Raspberry Pi como si fuera un directorio local.
Uso desde nuestro equipo
El uso desde nuestro equipo puede parecer algo mas complejo que en el caso de sftp, pero una vez instalado y preparado finalmente es mas sencillo. Con todo y con eso, recuerda que hay medios mas eficaces para la transmisión de archivos, pero la ventaja de estos es la seguridad.
Así, lo primero que tendremos que hacer en nuestro ordenador es instalar sshfs
, para ello, ejecutamos la siguiente orden en un emulador de terminal,
sudo apt install sshfs
Una vez instalado, lo primero es crear un directorio donde montaremos el directorio de la Raspberry. Posteriormente tenemos que ejecutar la siguiente orden para entrar en nuestro directorio de inicio en la Raspberry Pi como si fuera un directorio de nuestro ordenador.
sshfs pi@192.168.1.48: directorio_local
Para montar el directorio no es necesario permisos de administrador, pero sin embargo, para desmontarlo si que lo es. Así, para desmontar el directorio, ejecutaremos la siguiente orden,
sudo umount directorio_local
Tienes que tener en cuanta que tanto para montar como para desmontar el directorio directorio_local
debes estar en el directorio padre de este.
Como te puedes imaginar, si esto lo tienes que hacer en cada ocasión, pierde la gracia. Sin embargo, SSHFS permite realizar puntos de montaje permanentes a sistemas de archivo remoto. Para configurar este este punto de montaje permanente tendrás que editar el archivo /etc/fstab
en tu ordenador. De esta forma cada vez que si inicie tu equipo se montará el directorio de la Raspberry en tu directorio local.
Vamos a editar /etc/fstab
. Para ello, ejecutaremos la siguiente orden,
sudo nano /etc/fstab
En el archivo /etc/fstab
, añadiremos la siguiente línea al final del mismo,
pi@192.168.1.48:/srv/sshfs/share /mnt/sshfs fuse.sshfs defaults,_netdev 0 0
Conclusiones
Como puedes, y a pesar de pequeña complicación que puede conllevar montar un directorio vía sshfs, cualquiera de las dos soluciones es relativamente sencilla. Cualquiera de las dos soluciones nos puede facilitar sensiblemente el acceso al sistema de archivos como si fuera un directorio local. De esta forma cualquier operación que queramos realizar en nuestra Raspberry Pi, será exactamente igual a realizarlo de forma local en nuestro propio ordenador.
Más información,
Hola hay otra pegita con lo de montar en el fichero /fstab y es la contraseña de autenticación, que supongo hay que cambiar claves públicas para que no se necesite escribir password.
Un saludo,
Hola Julio,
Si eso es cierto, pero parto de que debemos tener claves públicas. El uso de contraseña me parece un atraso absoluto.
Un saludo y gracias por tu comentario.
Pero que clave pública se usa? la de que usuario?
Acá explica muy bien como configurarlo para diferentes usuarios: https://wiki.archlinux.org/index.php/SSHFS_(Español)
En la linea que añadimos a fstab el directorio /srv/sshfs/share es el que compartimos de la raspberry-pi?