bd78fd9fbe
Modulos de restauracion: - bootstrap: instala yq, age y dependencias base (curl, wget, git, nano, gpg) - ssh: descifra e instala claves SSH desde secrets/sshKeys.tar.gz.age - registry: aplica paquetes apt/snap/flatpak, dotfiles, servicios y configs Docker - thunderbird: instala Thunderbird snap y restaura perfil desde ZIP - claudeCode: configura repositorio apt de Anthropic e instala claude-code - easyEffects: restaura configuracion y presets desde ZIP - wireplumber: restaura dispositivo Bluetooth por defecto y perfiles de audio - cups: restaura impresoras y drivers PPD desde ZIP Scripts de captura (correr antes de push): - scripts/encryptSsh.sh: cifra ~/.ssh con age - scripts/thunderbird/capture.sh: captura perfil de Thunderbird snap - scripts/easyEffects/capture.sh: captura config de EasyEffects flatpak - scripts/wireplumber/capture.sh: captura estado de WirePlumber - scripts/cups/capture.sh: captura impresoras CUPS y PPDs (requiere sudo) Registro de aplicaciones (config/registry.yaml): - 9 paquetes apt, 1 snap (dbeaver-ce), 22 flatpaks incluyendo VSCodium, Bitwarden, Inkscape, LibreOffice, OBS Studio, Nextcloud Desktop, entre otros Secretos incluidos: - secrets/sshKeys.tar.gz.age: claves SSH cifradas con age - secrets/thunderbirdProfile.zip: perfil de Thunderbird sin emails ni cache - secrets/easyEffectsConfig.zip: ajustes y presets de salida de audio - secrets/wireplumberState.zip: estado de audio incluyendo auriculares Bluetooth - secrets/cupsConfig.zip: 5 impresoras configuradas con sus drivers Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
39 lines
1.2 KiB
Bash
Executable File
39 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Cifra ~/.ssh con age y guarda el resultado en secrets/sshKeys.tar.gz.age.
|
|
# Corré esto en tu máquina actual ANTES de hacer push del repo.
|
|
#
|
|
# Uso: ./scripts/encryptSsh.sh [ruta-a-.ssh]
|
|
set -euo pipefail
|
|
|
|
stpRoot="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
sshSource="${1:-$HOME/.ssh}"
|
|
|
|
if [[ ! -d "$sshSource" ]]; then
|
|
echo "Error: directorio no encontrado: $sshSource"
|
|
exit 1
|
|
fi
|
|
|
|
if ! command -v age &>/dev/null; then
|
|
echo "Error: age no está instalado. Instalalo con: sudo apt install age"
|
|
exit 1
|
|
fi
|
|
|
|
mkdir -p "$stpRoot/secrets"
|
|
readonly outputFile="$stpRoot/secrets/sshKeys.tar.gz.age"
|
|
|
|
workingDirectory="$(mktemp -d)"
|
|
trap 'rm -rf "$workingDirectory"' EXIT
|
|
|
|
echo "Empaquetando $sshSource..."
|
|
tar -czf "$workingDirectory/sshKeys.tar.gz" -C "$(dirname "$sshSource")" "$(basename "$sshSource")"
|
|
|
|
echo "Cifrando con age (usá una passphrase segura que puedas recordar)..."
|
|
age --passphrase --output "$outputFile" "$workingDirectory/sshKeys.tar.gz"
|
|
|
|
echo ""
|
|
echo "✓ Claves cifradas guardadas en: secrets/sshKeys.tar.gz.age"
|
|
echo " Este archivo es seguro para commitear — está cifrado simétricamente."
|
|
echo ""
|
|
echo "Para verificar que el cifrado funciona:"
|
|
echo " age --decrypt secrets/sshKeys.tar.gz.age | tar -tzv"
|