install.fairie/home/.chezmoiscripts/universal/run_onchange_before_91-configure-gpg.tmpl

51 lines
1.9 KiB
Cheetah
Raw Normal View History

#!/usr/bin/env bash
2023-01-24 20:36:59 -08:00
{{ includeTemplate "universal/profile-before" }}
{{ includeTemplate "universal/logg-before" }}
KEYID="{{ .user.gpg.id }}"
if [ -n "$KEYID" ] && command -v gpg > /dev/null; then
if [ ! -d "$HOME/.gnupg" ]; then
mkdir "$HOME/.gnupg"
fi
chown "$(whoami)" "$HOME/.gnupg"
chmod 700 "$HOME/.gnupg"
chown -Rf "$(whoami)" "$HOME/.gnupg/"
find "$HOME/.gnupg" -type f -exec chmod 600 {} \;
find "$HOME/.gnupg" -type d -exec chmod 700 {} \;
if [ ! -f "$HOME/.gnupg/gpg.conf" ]; then
logg 'Downloading hardened gpg.conf file to ~/.gpnupg/gpg.conf'
curl -sSL "{{ .config.gpg }}" > "$HOME/.gnupg/gpg.conf"
chmod 600 "$HOME/.gnupg/gpg.conf"
fi
KEYID_TRIMMED="$(echo "$KEYID" | sed 's/^0x//')"
if ! gpg --list-secret-keys --keyid-format=long | grep "$KEYID_TRIMMED" > /dev/null; then
logg info 'Attempting to download the specified public GPG key (`{{ .user.gpg.id }}`) from public keyservers'
sudo pkill dirmngr
dirmngr --daemon --standard-resolver
Update 55 files - /home/dot_gnupg/public/0xF0A300E4199A1C33.sig - /home/dot_gnupg/public/apt.hashicorp.sig - /home/dot_gnupg/public/linux.wazuh.sig - /home/dot_gnupg/public/qubes.uman.sig - /home/dot_ssh/authorized_keys.github.tmpl - /home/dot_ssh/endlessh/config.tmpl - /home/dot_ssh/endlessh/run_onchange_after_endlessh.tmpl - /home/dot_ssh/fail2ban/jail.local.tmpl - /home/dot_ssh/fail2ban/run_onchange_after_fail2ban.tmpl - /home/dot_ssh/private_config.tmpl - /home/dot_ssh/private_id_rsa.tmpl - /home/dot_ssh/private_ssh-audi.tmpl - /home/dot_ssh/private_ssh-blue.tmpl - /home/dot_ssh/private_ssh-fiat.tmpl - /home/dot_ssh/private_ssh-honda.tmpl - /home/dot_ssh/private_ssh-lab.pub.tmpl - /home/dot_ssh/private_ssh-lab.tmpl - /home/dot_ssh/private_ssh-mini.tmpl - /home/dot_ssh/private_ssh-red.tmpl - /home/dot_ssh/private_ssh-yellow.tmpl - /home/dot_ssh/run_onchanges_after_ensure-private-key.tmpl - /home/dot_ssh/run_onchanges_after_generate-public-keys.tmpl - /home/dot_ssh/ssh-authorized_keys.yubikey.tmpl - /home/dot_ssh/symlink_authorized_keys.tmpl - /home/dot_ssh/system/banner - /home/dot_ssh/system/run_onchange_after_sshd.tmpl - /home/dot_ssh/system/sshd_config.tmpl - /home/private_dot_gnupg/public/linux.wazuh.sig - /home/private_dot_gnupg/public/0xF0A300E4199A1C33.sig - /home/private_dot_gnupg/public/qubes.uman.sig - /home/private_dot_gnupg/public/apt.hashicorp.sig - /home/private_dot_ssh/endlessh/config.tmpl - /home/private_dot_ssh/endlessh/run_onchange_after_endlessh.tmpl - /home/private_dot_ssh/fail2ban/jail.local.tmpl - /home/private_dot_ssh/fail2ban/run_onchange_after_fail2ban.tmpl - /home/private_dot_ssh/system/banner - /home/private_dot_ssh/system/run_onchange_after_sshd.tmpl - /home/private_dot_ssh/system/sshd_config.tmpl - /home/private_dot_ssh/private_ssh-mini.tmpl - /home/private_dot_ssh/symlink_authorized_keys.tmpl - /home/private_dot_ssh/private_ssh-audi.tmpl - /home/private_dot_ssh/private_ssh-lab.pub.tmpl - /home/private_dot_ssh/private_ssh-yellow.tmpl - /home/private_dot_ssh/private_config.tmpl - /home/private_dot_ssh/run_onchanges_after_generate-public-keys.tmpl - /home/private_dot_ssh/private_ssh-fiat.tmpl - /home/private_dot_ssh/private_ssh-blue.tmpl - /home/private_dot_ssh/private_ssh-red.tmpl - /home/private_dot_ssh/ssh-authorized_keys.yubikey.tmpl - /home/private_dot_ssh/private_ssh-honda.tmpl - /home/private_dot_ssh/authorized_keys.github.tmpl - /home/private_dot_ssh/private_id_rsa.tmpl - /home/private_dot_ssh/run_onchanges_after_ensure-private-key.tmpl - /home/private_dot_ssh/private_ssh-lab.tmpl - /home/.chezmoiscripts/universal/run_onchange_before_91-configure-gpg.tmpl
2023-02-01 08:40:47 -08:00
gpg --keyserver https://pgp.mit.edu --recv "$KEYID" || EXIT_CODE=$?
if [ -n "$EXIT_CODE" ]; then
logg warn 'Error downloading public GPG key'
gpg --keyserver hkps://pgp.mit.edu --recv "$KEYID" || EXIT_CODE=$?
if [ -n "$EXIT_CODE" ]; then
logg warn 'Failed to retrieve public user GPG key on hkps://pgp.mit.edu'
gpgconf --kill dirmngr
KEYID="${KEYID^^}"
KEYID="$(echo "$KEYID" | sed 's/^0X/0x/')"
if [ -f "$HOME/.gnupg/public/$KEYID.sig" ]; then
gpg --import "$HOME/.gnupg/public/$KEYID.sig"
fi
else
logg success 'Successfully imported configured public user GPG key'
fi
fi
else
logg info 'Key is already in keyring'
fi
logg 'Ensuring the trust of the provided public GPG key is set to maximum'
echo -e "trust\n5\ny" | gpg --command-fd 0 --edit-key "$KEYID"
else
logg warn '`gpg` appears to be unavailable. Is it installed and on the PATH?'
fi