fix: Convert ssh keys to age keys
All checks were successful
CI / Format Check (push) Successful in 2s
CI / Flake Check (push) Successful in 1m42s
CI / Evaluate Key Configurations (nix-builder) (push) Successful in 14s
CI / Evaluate Key Configurations (nix-desktop1) (push) Successful in 7s
CI / Evaluate Key Configurations (nix-laptop1) (push) Successful in 8s
CI / Evaluate Artifacts (installer-iso-nix-laptop1) (push) Successful in 20s
CI / Evaluate Artifacts (lxc-nix-builder) (push) Successful in 13s
CI / Build and Publish Documentation (push) Successful in 11s
All checks were successful
CI / Format Check (push) Successful in 2s
CI / Flake Check (push) Successful in 1m42s
CI / Evaluate Key Configurations (nix-builder) (push) Successful in 14s
CI / Evaluate Key Configurations (nix-desktop1) (push) Successful in 7s
CI / Evaluate Key Configurations (nix-laptop1) (push) Successful in 8s
CI / Evaluate Artifacts (installer-iso-nix-laptop1) (push) Successful in 20s
CI / Evaluate Artifacts (lxc-nix-builder) (push) Successful in 13s
CI / Build and Publish Documentation (push) Successful in 11s
This commit is contained in:
36
secrets/update-age-keys.sh
Executable file
36
secrets/update-age-keys.sh
Executable file
@@ -0,0 +1,36 @@
|
||||
#!/usr/bin/env bash
|
||||
# ============================================================================
|
||||
# Update Age Keys from SSH Public Keys
|
||||
# ============================================================================
|
||||
# This script converts SSH public keys to age format for use with ragenix.
|
||||
# Run this after adding new SSH .pub files to create corresponding .age.pub files.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
cd "$SCRIPT_DIR"
|
||||
|
||||
echo "Converting SSH public keys to age format..."
|
||||
|
||||
# Find all .pub files that are SSH keys (not already .age.pub)
|
||||
find . -name "*.pub" -not -name "*.age.pub" -type f | while read -r pubkey; do
|
||||
# Check if it's an SSH key
|
||||
if grep -q "^ssh-" "$pubkey" 2>/dev/null || grep -q "^ecdsa-" "$pubkey" 2>/dev/null; then
|
||||
age_key=$(nix shell nixpkgs#ssh-to-age -c ssh-to-age < "$pubkey" 2>/dev/null || true)
|
||||
|
||||
if [ -n "$age_key" ]; then
|
||||
# Create .age.pub file with the age key
|
||||
age_file="${pubkey%.pub}.age.pub"
|
||||
echo "$age_key" > "$age_file"
|
||||
echo "✓ Converted: $pubkey -> $age_file"
|
||||
else
|
||||
echo "⚠ Skipped: $pubkey (conversion failed)"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "Done! Age public keys have been generated."
|
||||
echo "You can now use ragenix to manage secrets:"
|
||||
echo " ragenix -e secrets/global/my-secret.age"
|
||||
echo " ragenix -r # Re-key all secrets with updated keys"
|
||||
Reference in New Issue
Block a user