Volver al inicio

Sincronización segura de Obsidian: Git y cifrado

Guía detallada para configurar la sincronización segura de notas en Obsidian usando Git y la herramienta git-crypt para cifrado de extremo a extremo. El artículo cubre la creación de una clave GPG, inicializar el repositorio, integración con el plugin Obsidian Git, configuración de hooks pre-commit y métodos de respaldo.

Cómo sincronizar Obsidian con cifrado: Guía completa
Advertisement 728x90

## Sincroniza Obsidian de Forma Segura con Git y Cifrado de Extremo a Extremo

Sincronizar notas de Obsidian entre dispositivos manteniendo tus datos privados es sencillo usando Git y la herramienta git-crypt para cifrado transparente. Este método te da control total sobre tus notas, eliminando la dependencia de servicios en la nube propietarios.

Configurando tu Entorno y Creando una Clave GPG

Empieza instalando el software necesario. En Arch Linux, ejecuta sudo pacman -S gnupg git-crypt; en Debian/Ubuntu, usa sudo apt install gnupg git-crypt. A continuación, asegura los permisos del directorio GPG:

chmod 700 ~/.gnupg
find ~/.gnupg -type f -exec chmod 600 {} \;
find ~/.gnupg -type d -exec chmod 700 {} \;

Genera una clave asimétrica con gpg --full-generate-key. Durante la configuración, elige:

Google AdInline article slot
  • Tipo de clave: RSA (opción 1).
  • Tamaño: 4096 bits.
  • Caducidad: 0 (sin caducidad).
  • Datos de ID: tu nombre y correo.
  • Contraseña: obligatoria para desbloquear cada repositorio.

Para mayor comodidad, almacena la contraseña en caché durante 24 horas agregando default-cache-ttl 86400 y max-cache-ttl 86400 a ~/.gnupg/gpg-agent.conf, luego ejecuta gpgconf --reload gpg-agent.

Inicializando el Repositorio con git-crypt

Ve a tu carpeta de notas e inicializa un repositorio Git: cd ~/notes && git init. Configura el cifrado con git-crypt init, luego añade tu clave GPG como de confianza: git-crypt add-gpg-user --trusted [email protected].

Configura correctamente .gitignore y .gitattributes. En .gitignore, excluye archivos temporales y del sistema de Obsidian:

Google AdInline article slot
.obsidian/workspace.json
.obsidian/workspace-mobile.json
.obsidian/cache
.trash/

En .gitattributes, especifica los archivos para cifrar con git-crypt:

.gitattributes !filter !diff
.gitignore !filter !diff

*.md     filter=git-crypt diff=git-crypt
*.canvas filter=git-crypt diff=git-crypt
*.png    filter=git-crypt diff=git-crypt
*.jpg    filter=git-crypt diff=git-crypt
*.jpeg   filter=git-crypt diff=git-crypt
*.pdf    filter=git-crypt diff=git-crypt

El orden de los commits importa: primero .gitattributes, luego todo lo demás para evitar subir datos sin cifrar.

git add .gitattributes
git commit -m "$(date '+%Y-%m-%d %H:%M')"
git add .
git commit -m "$(date '+%Y-%m-%d %H:%M')"

Verifica el estado del cifrado con git-crypt status | grep WARNING. Configura tu repositorio remoto y sube los cambios.

Google AdInline article slot

Integración con Obsidian y Automatización

Instala el plugin Obsidian Git (de Vinzent) desde la configuración de Obsidian para operaciones Git como pull, commit y push desde la interfaz o en horarios programados. Regla clave: siempre desbloquea el repositorio con git-crypt unlock en la terminal antes de abrir Obsidian. De lo contrario, verás datos binarios en lugar del texto de las notas, y el plugin podría subir commits defectuosos.

Mejora la seguridad con un pre-commit hook que bloquee archivos sin cifrar. Crea un archivo ejecutable .githooks/pre-commit:

#!/bin/bash
for file in $(git diff --cached --name-only); do
    if git check-attr filter "$file" | grep -q "git-crypt"; then
        string=$(git show ":$file" 2>/dev/null | head -c 9)
        if [ "$string" != $'\x00GITCRYPT' ]; then
            echo "el archivo '$file' no está cifrado, ten cuidado"
            exit 1
        fi
    fi
done
exit 0

Indica a Git que lo use: git config core.hooksPath .githooks.

Migración y Copias de Seguridad

Para moverte a un nuevo dispositivo, exporta tu clave GPG secreta: gpg --export-secret-keys --armor [email protected] > ~/key.asc. Transfiere de forma segura (por ejemplo, con scp), importa con gpg --import, clona el repositorio y ejecuta git-crypt unlock. Elimina el archivo de clave de ambos dispositivos después. Haz una copia de seguridad de tu clave GPG en un lugar seguro como un gestor de contraseñas: sin ella y la contraseña, tus notas serán inaccesibles.

Alternativa: Cifrado Simétrico

Si GPG te parece excesivo, usa las claves simétricas de git-crypt. Exporta con git-crypt export-key ~/key.bin, luego conviértela a base64 para guardarla: base64 -i ~/key.bin. Almacena la cadena en tu gestor de contraseñas. En otro dispositivo, decodifica y desbloquea: echo "cadena base64" | base64 -d > key.bin && git-crypt unlock key.bin. Nota: es menos seguro, ya que no hay una contraseña extra protegiendo la clave; si se compromete, tus datos quedan expuestos.

Beneficios Clave

  • Control total de datos: Tus notas permanecen en tu repositorio Git con cifrado de extremo a extremo AES-256.
  • Flujo de trabajo fluido: El cifrado/descifrado es automático mediante filtros de Git; editas archivos Markdown normales.
  • Multiplataforma: Funciona en Linux, macOS y Windows (vía WSL o Git nativo).
  • Sincronización automática: El plugin Obsidian Git maneja commits y pushes programados.
  • Protecciones extra: El pre-commit hook evita subidas accidentales de archivos sin cifrar.

— Editorial Team

Advertisement 728x90

Leer después