Montar disco de la nube con rclone

¿En qué podemos ayudarte?
< Regresar
Estás aquí:
Imprimir

Pre requsitos

  1. Rclone instalado
  2. Cuenta en la nube (googledrive,onedrive,drivebox,etc)

Instalación de rclone

# curl https://rclone.org/install.sh | sudo bash

Configuración de rclone

# rclone config

Al ser la configuración inicial seleccionamos la “n” del menú, para crear una conexión remota nueva.

A continuación deberemos de escribir el nombre de la conexión, si la conexión es a google drive, el nombre podría ser “gdrive” (no poner las comillas).

Del menu que se despliega buscar el número que le pertenece al  google drive (o al vendor del que se quiera conectar).

 Ejemplo: 15  Google Drive “drive”.

Introducir el número 15 (en este caso).

Crear Google Drive Client ID

Visitar https://rclone.org/drive/ y/o directo a https://console.developers.google.com/

Entrar con el usuario de google con el que se creará el ID (no necesariamente debe ser el usuario a donde se conectara al espacio en la nube).

Crear o seleccionar un proyecto.

Ir al boton de habilitar “API y Servicios”.

Buscar la API “Google Drive”

Click en el botón azul de “Habilitar”

Click en el sidebar de la izquierda que dice “Credenciales”

Click en ” Pantalla de consentimiento de OAuth”

Selecciona “Interno” si tu usuario de google tiene un workspace corporativo, de lo contrario selecciona “externo”

Escribe el nombre de la aplicación y en el campo de usuarios agregar los correos de las personas que tendran acceso a la app (deben ser correos de gmail).

llena los campos obligatorios y dar “salvar”

Regresar a Credenciales en el sidebar izquierdo.

Click en crear credenciales

Del submenu escoger ID de cliente de OAuth

Escoger app de escritorio

Poner el nombre que quieras

Click crear

 

Continuar con la configuración de rclone

Volver a la configuración de rclone que se quedo pendiente y poner las credenciales generadas en el paso anterior.

Del menu que se despliega seleccionar la opción 1, que da acceso a todo el drive en lectura y escritura.

Si se quiere tener acceso al root del drive, dar enter en la pregunta de “ID of the root folder” o especificar la carpeta a la que se tendra acceso y la cual sera tomada como root.

“Service Account Credentials JSON file path” dar enter.

Edit advanced config? (y/n) – Responder “n”

Use auto config? – Si se esta en la maquina local responder “y” si se esta conectando a una maquina remota via ssh. Responder “n”.

Se generara un link el cual hay que pegarlo en el navegador.

Al pasar la pantalla de consentimiento te regresara una llave, que debes poner en la ventana donde se esta configurando el rclone,

Configure this as a Shared Drive (Team Drive)? – Responder “n”

Yes this is OK (default) – Responder “y”

Salir de rclone con la letra q

 

Probando el acceso al drive

Las operaciones que se tienen disponible con el rclone son: copy move o sync (este ultimo lo utilizamos si queremos tener una copia offline de una carpeta de la nube en nuestra máquina).

También contamos con las banderas

-v (verbose)

– -log-file /opt/rclone.log

–progress

Ejemplo:

# rclone copy -v –progress ~/folder/file.txt gdrive:test

Donde gdrive: es la conexion remota creada en el rclone y test es una carpeta dentro de gdrive:

Validando la transferencia

Si se utilizo la opción de log, se puede dar un cat al archivo y ver la transferencia.

Otra opción es usando el comando “rclone lsf remotename:folder

Ejemplo:

rclone lsf gdrive:test

Montar el drive localmente

# mkdir gdrive

# chmod 755 gdrive

# rclone mount –dir-cache-time 96h –cache-info-age 100h –vfs-cache-mode writes –allow-other –log-level DEBUG –log-file /(folder-name)/rclone.log (remote-name): / /(local mount folder)

# cd gdrive

# ls -alF

Encriptar contenido

Esta opción es parecida a la anterior, se debe crear una conexión nueva y se debe especificar que la conexión es de encripción, se puede utilizar la conexión hecha anteriormente para tomarse como root + la carpeta donde se guardará la información encriptada.

Como ejemplo crearemos una conexión nueva donde tendremos como root gdrive y como subcarpeta encrypted (gdrive:encrypted )

# rclone  config

# n (nueva conexion)

# encrypt (nombre de la conexion)

# crypt (escribir la palabra crypt o buscar el número que le corresponde a crypt)

# gdrive:encrypted (escribir la ruta de la carpeta tomando en cuenta la conexion remota anterior)

# off (el poner 1 esta bien sin embargo si se requiere desencriptar los archivos en otra maquina, el rastreo de nombres puede ser muy complicado, sugerencia dejarlo apagado)

# false (lo mismo que el anterior pero para nombres de directorios)

# g (generar la llave automatica de 1024 bits)

# g (generar la llave “salt” adicional)

# y (salvar configuracion)

# n (no editar opciones avanzadas)

# y (guarda cambios)

# q (salir)

NOTA: Guardar los passwords y el archivo de configuración del rclone (~/.config/rclone/rclone.conf) en un lugar seguro ya que son la única manera de recuperar los datos en otra máquina.

Se prueba el acceso de la misma manera que antes rclone copy test.txt encrypted:

otra prueba es tratar de descargar los archivos desde la aplicacion normal de googledrive y tratar de abrirlos, marcara como si los archivos estuvieran dañados. solo un equipo con rcloney las llaves puede usarse para desencriptar los archivos.

Desencriptar contenido

En el escenario donde no se tenga acceso a la máquina donde se encriptaron los archivos vía rclone, se pueden desencriptar en otra máquina con rclone y las llaves originales. Esta sección muestra como desencriptar un archivo descargado por la app normal de googledrive y desencriptandolo para poder acceder a su contenido.

Se asume que ya se descargo el archivo que se quiere desencriptar, para este ejemplo se usara mysecrets.txt.bin (el .bin lo pone rclone al subir encriptado un archivo). Si la maquina donde se pretende hacer esta tarea ya cuenta con una configuración de rclone, se recomienda utilizar un archivo de configuracion temporal, para no afectar lo que ya esta configurado previamente. En caso de ser recien instalación del rclone se puede proceder si hacer archivo temporal.

# cd path/where/I/stored/mysecrets.txt.bin

# export RCLONE_CONFIG=~/.config/rclone/tmp.cfg

# rclone config

# n (nueva conexion)

# cc (nombre de la conexion)

# crypt (tipo de la conexion puede ser la palabra o el número)

# “.” (en Remote to encrypt/decrypt debe ir “.” sin comillas)

# off (nombre de archivos)

# false (nombre de directorios)

# y (escribe el pw que respaldaste del equipo viejo)

# y (escribe el salt que respaldaste del equipo viejo)

# n (no editar opciones avanzadas)

# y (todo ok)

# q(salir)

Listo ahora a desencriptar el archivo, recordemos que estamos en “path/where/I/stored/mysecrets.txt.bin” y que hemos exportado la variable RCLONE_CONFIG=~/.config/rclone/tmp.cfg

# rclone copy cc:mysecrets.txt .

NOTA: no se pone el .bin del archivo esto lo quta rclone automaticamente. Esto es importante para saber si se ha desencriptado o no, también se puede hacer un cat si es archivo de texto

Table of Contents

Deja un comentario