9de3b66c56
- /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
49 lines
2 KiB
Bash
49 lines
2 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
{{ 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 -R "$(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'
|
|
gpg --keyserver https://pgp.mit.edu --recv "$KEYID" || EXIT_CODE=$?
|
|
if [ -n "$EXIT_CODE" ]; then
|
|
logg warn 'Error downloading public GPG key'
|
|
logg info 'Retrying after turning on debug mode and using the standard DNS resolver'
|
|
sudo pkill dirmngr
|
|
dirmngr --debug-all --daemon --standard-resolver
|
|
gpg --keyserver hkps://pgp.mit.edu --recv "$KEYID" || EXIT_CODE=$?
|
|
if [ -n "$EXIT_CODE" ]; then
|
|
logg error '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
|