#!/usr/bin/env bash set -o errexit set -o nounset set -o pipefail if [[ "$#" -ne 2 ]]; then echo "Usage: $0 " exit 1 fi HOST="$1" AGE_KEY=$(nix shell nixpkgs#ssh-to-age --command bash -c "cat './hosts/${HOST}/secrets/ssh_host_ed25519_key.pub' | ssh-to-age") find . -type f -name "sops.yaml" | while IFS= read -r SOPS_FILE; do sed -i "/ - &${HOST} ${AGE_KEY}/d" "${SOPS_FILE}" sed -i "/ - \*${HOST}/d" "${SOPS_FILE}" done sed -i "/${HOST}/d" ./hosts/common/configs/system/ssh/default.nix sed -i "/${HOST}/d" ./hosts/common/configs/user/console/ssh/default.nix "$(dirname "$0")/update-keys.sh" "$2" rm -rf "./hosts/${HOST}" echo "Host ${HOST} has been successfully removed." echo "Please remove SSH key pairs for any users that used to connect to this host."