## 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:
- 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:
.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.
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
Aún no hay comentarios.