#!/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"