🔐 Script: vault-init

🇪🇸 Descripción

El script vault-init inicializa el sistema de cifrado de ShFlow, generando una clave simétrica segura para proteger los secretos almacenados en core/vault. También permite rotar la clave existente, verificar el estado del vault y configurar cifrado asimétrico mediante claves públicas exportadas con GPG.

Este script se encuentra en core/utils/vault-init.sh y se accede mediante el alias vault-init.


🧩 Acciones disponibles

Opción Descripción
(sin argumentos) Genera una nueva clave simétrica si no existe
--rotate Rota la clave actual y re-cifra todos los secretos
--status Muestra el estado actual del vault y claves
--asymmetric Verifica la existencia de una clave pública exportada para cifrado asimétrico

▶️ Ejemplos de uso

vault-init                # Genera clave simétrica si no existe
vault-init --status       # Muestra estado del vault
vault-init --rotate       # Rota clave y re-cifra secretos
vault-init --asymmetric   # Verifica clave pública exportada

📁 Archivos utilizados

Ruta Descripción
core/vault/ Carpeta donde se almacenan los secretos cifrados
~/.shflow.key Clave simétrica generada por defecto
~/.shflow.pub Clave pública exportada para cifrado asimétrico

🧠 Trazas esperadas

🔐 Generando nueva clave simétrica...
✅ Clave creada en /home/user/.shflow.key

🔄 Rotando clave y re-cifrando secretos...
🔁 Re-cifrando 'API_TOKEN'...
✅ Rotación completada. Clave antigua guardada en /home/user/.shflow.key.old

📊 Estado del Vault
-------------------
🔐 Clave simétrica: ✅ presente
🔐 Clave pública:   ❌ ausente
📁 Ruta del vault:  core/vault
📦 Secretos:        3
🕒 Última modificación: 2025-09-19 00:44:12

⚠️ Advertencias

  • La rotación de clave sobrescribe los secretos cifrados. Se recomienda hacer backup antes.
  • El cifrado asimétrico requiere exportar previamente la clave pública con:
    gpg --export -a 'usuario@dominio' > ~/.shflow.pub
  • La clave simétrica debe mantenerse privada y segura. No compartir ni versionar.

📜 Changelog

Consulta el historial de cambios en changelog/vault-init.md