El servicio de almacenamiento en la nube de Mega ofrece hasta 50 GB de espacio gratuito (10 GB de transferencia al mes), cifrado, multiplataforma, con sincronizado selectivo y está disponible desde el navegador. Con 50 GB da para guardar algunas copias de seguridad de nuestros archivos, correos o bases de datos.
A continuación, veremos cómo instalar el cliente y acceder desde el terminal de nuestro servidor.
Instalación en el escritorio
Aunque vayamos a instalarlo en el servidor, no he querido dejar de
comentar la instalación de escritorio, que es realmente sencilla.
Instalamos la librería libcrypto++9
desde los repositorios y, a
continuación, descargamos el paquete, en este caso para Ubuntu
Trusty Tahr 14.04 32 bits, y lo instalamos:
$ wget https://mega.nz/linux/MEGAsync/xUbuntu_14.04/i386/megasync-xUbuntu_14.04_i386.deb
$ sudo dpkg -i megasync-xUbuntu_14.04_i386.deb
Actualizado el 2 de mayo de 2015
Si al realizar la actualización del sistema nos aparece el error:
W: Se produjo un error durante la verificación de las firmas. El repositorio no está actualizado y se utilizarán los ficheros de índice antiguos. El error GPG es: http://mega.nz ./ Release: Las firmas siguientes no se pudieron verificar porque su llave pública no está disponible: NO_PUBKEY AC025B14069B6221
W: Fallo al renombrar http://mega.nz/linux/MEGAsync/xUbuntu_14.10/./Release:
W: Algunos archivos de índice fallaron al descargar. Se han ignorado, o se han utilizado unos antiguos en su lugar
Comprobamos si está disponible la clave:
$ gpg --keyserver keyserver.ubuntu.com --recv-keys AC025B14069B6221
gpg: solicitando clave 069B6221 de hkp servidor keyserver.ubuntu.com
gpg: clave 069B6221: «MEGAsync OBS Project » sin cambios
gpg: Cantidad total procesada: 1
gpg: sin cambios: 1
Y la actualizamos:
$ sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com AC025B14069B6221
Ahora ya podremos actualizar normalmente.
Hay que tener en cuenta que nuestra contraseña se utiliza para cifrar el contenido, por lo que si la perdemos, lo perdemos todo. Cabe recordar que también tenemos la opción de exportar la clave principal y tenerla a buen recaudo.
Instalación en el servidor
Si queremos instalarlo en nuestro servidor, podemos recurrir a las megatools desde el repositorio y compilarlas, o bien hacerlo desde el PPA, aunque éste último ya no está mantenido desde Quantal.
Lo que haremos esta vez será bajar una de las compilaciones ya preparadas:
$ wget http://megatools.megous.com/builds/megatools-1.9.94.tar.gz
$ wget http://megatools.megous.com/builds/megatools-1.9.94.tar.gz.asc
Actualizado el 26 de abril de 2015
Lo había dado por hecho, pero no está demás comentar que es altamente recomendable que comprobemos la firma:
$ gpg --verify megatools-1.9.94.tar.gz.asc
gpg: Signature made vie 02 ene 2015 08:43:50 CET using DSA key ID A7BB2AC1
gpg: Can’t check signature: public key not found
En este caso, aún no la tenemos, así que la buscamos, y tras confirmar que corresponde al creador del paquete, la instalamos:
$ gpg --search-keys A7BB2AC1
gpg: searching for "A7BB2AC1" from hkp server keys.gnupg.net
(1) Ondrej Jirman
1024 bit DSA key A7BB2AC1, created: 2003-08-24
Keys 1-1 of 1 for "A7BB2AC1". Enter number(s), N)ext, or Q)uit > 1
gpg: requesting key A7BB2AC1 from hkp server keys.gnupg.net
gpg: key A7BB2AC1: public key "Ondrej Jirman " imported
gpg: Total number processed: 1
gpg: imported: 1
Volvemos a comprobar la firma:
$ gpg --verify megatools-1.9.94.tar.gz.asc
gpg: Signature made vie 02 ene 2015 08:43:50 CET using DSA key ID A7BB2AC1
gpg: Good signature from "Ondrej Jirman "
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: D79E 2F84 317E 26CE 8EFD A605 BF23 1000 A7BB 2AC1
La criticidad del aviso dependerá de la confianza que pongamos en la clave pública. Lo ideal sería que hubiéramos recibido la clave directamente de mano del propietario, pero por lo general se suele bajar de internet. En este caso, considero que la probabilidad de que la clave descargada haya sido modificada es prácticamente nula, así que procedemos confiadamente.
Descomprimimos el paquete:
$ tar xzvf megatools-1.9.94.tar.gz
$ cd megatools-1.9.94
Instalamos las dependencias:
$ sudo aptitude install build-essential libglib2.0-dev libssl-dev libgirepository1.0-dev libcurl4-gnutls-dev glib-networking
He probado libcurl4-gnutls-dev
en lugar de libcurl4-openssl-dev
y
parece que no hay problemas.
Instalamos:
$ ./configure
$ make
$ sudo make install # o sudo checkisntall
Uso
Si aún no habíamos resgistrado la cuenta desde la web, podemos hacerlo
con el comando megareg
.
Si nos aparece un error como el siguiente:
megareg: error while loading shared libraries: libmega.so.0: cannot open shared object file: No such file or directoryes que las librerías no están preparadas para utilizarse. Lo resolvemos ejecutando:
$ sudo ldconfig
Comandos disponibles:
megareg Register and verify a new mega account
megadf Show your cloud storage space usage/quota
megals List all remote files
megamkdir Create remote directory
megarm Remove remote file or directory
megamv Move and rename remote files
megaput Upload individual files
megaget Download individual files
megadl Download file from a "public" Mega link
(doesn't require login)
megastream Streaming download of a file
(can be used to preview videos or music)
megasync Upload or download a directory tree
megafs Mount remote filesystem locally.
Por ejemplo, para comprobar el espacio disponible:
$ megadf -u john@example.com -p password
Total: 53687091200
Used: 0
Free: 53687091200
Para no tener que escribir el usuario y la contraseña en la terminal,
podemos crear el siguiente archivo de configuración (ver man megarc
):
$ cat ~/.megarc
[Login]
Username = john@example.com
Password = password
Creamos un directorio remoto:
$ megamkdir /Root/test # el prefijo /Root es necesario. ver `man megatools`
Subir un archivo:
$ megaput file.txt # se sube a /Root
$ megaput --path /Root/test file.txt
Subir varios archivos en paralelo:
$ ls file*.txt | xargs -n1 -P4 megaput
Para sincronizar el directorio /home/user/mega
con el directorio que
acabamos de crear, podemos subir el directorio:
$ megasync -l /home/user/mega -r /Root/test
O descargarlo:
$ megasync -l /home/user/mega -r /Root/test --download
Si habíamos eliminado algún fichero y no se descarga, podemos limpiar la
caché utilizando el argumento --reload
.
Un problema con la sincronización es que los archivos que hayamos eliminado a través de otro canal, por ejemplo accediendo a través del navegador, no se borrarán en nuestro servidor local. Para remediarlo, podemos consultar los ficheros que no están en el servidor y borrarlos:
$ megasync --reload -n -l /home/user/mega -r /Root/test 2>/dev/null | sed 's|F /Root/test|/home/user/mega|' | xargs -0 rm
Cifrado del directorio
Una buena idea sería sincronizar un directorio cifrado. De esta forma, no tendríamos que confiar en que nuestros archivos estén realmente cifrados en los servidores de Mega.
En el siguiente artículo, podemos ver cómo cifrar un directorio en Mega
con encfs
.