65 lines
2.9 KiB
Markdown
65 lines
2.9 KiB
Markdown
|
---
|
||
|
title: Decrypt SSH Keys
|
||
|
description: Decrypts the encrypted SSH key files stored in the `home/.chezmoitemplates/ssh` folder of the repository / fork
|
||
|
sidebar_label: 05 Decrypt SSH Keys
|
||
|
slug: /scripts/after/run_onchange_after_05-decrypt-ssh-keys.sh.tmpl
|
||
|
githubLocation: https://github.com/megabyte-labs/install.doctor/blob/master/home/.chezmoiscripts/universal/run_onchange_after_05-decrypt-ssh-keys.sh.tmpl
|
||
|
scriptLocation: https://github.com/megabyte-labs/install.doctor/raw/master/home/.chezmoiscripts/universal/run_onchange_after_05-decrypt-ssh-keys.sh.tmpl
|
||
|
repoLocation: home/.chezmoiscripts/universal/run_onchange_after_05-decrypt-ssh-keys.sh.tmpl
|
||
|
---
|
||
|
# Decrypt SSH Keys
|
||
|
|
||
|
Decrypts the encrypted SSH key files stored in the `home/.chezmoitemplates/ssh` folder of the repository / fork
|
||
|
|
||
|
## Overview
|
||
|
|
||
|
This script decrypts the SSH key files that are housed in the `home/.chezmoitemplates/ssh` section of the repository.
|
||
|
It loops through all the files in `home/.chezmoitemplates/ssh` and stores them to the `~/.ssh` folder
|
||
|
when they are successfully decrypted.
|
||
|
|
||
|
## Secrets
|
||
|
|
||
|
For more information about storing secrets like SSH keys and API keys, refer to our [Secrets documentation](https://install.doctor/docs/customization/secrets).
|
||
|
|
||
|
|
||
|
|
||
|
## Source Code
|
||
|
|
||
|
```
|
||
|
{{- if (stat (joinPath .host.home ".config" "age" "chezmoi.txt")) -}}
|
||
|
#!/usr/bin/env bash
|
||
|
# @file Decrypt SSH Keys
|
||
|
# @brief Decrypts the encrypted SSH key files stored in the `home/.chezmoitemplates/ssh` folder of the repository / fork
|
||
|
# @description
|
||
|
# This script decrypts the SSH key files that are housed in the `home/.chezmoitemplates/ssh` section of the repository.
|
||
|
# It loops through all the files in `home/.chezmoitemplates/ssh` and stores them to the `~/.ssh` folder
|
||
|
# when they are successfully decrypted.
|
||
|
#
|
||
|
# ## Secrets
|
||
|
#
|
||
|
# For more information about storing secrets like SSH keys and API keys, refer to our [Secrets documentation](https://install.doctor/docs/customization/secrets).
|
||
|
|
||
|
{{ includeTemplate "universal/profile" }}
|
||
|
{{ includeTemplate "universal/logg" }}
|
||
|
|
||
|
logg info 'Decrypting SSH keys stored in the `home/.chezmoitemplates/ssh` folder of the Install Doctor repo / fork.'
|
||
|
find "{{ .chezmoi.sourceDir }}/.chezmoitemplates/ssh" -type f | while read SSH_FILE; do
|
||
|
### Decrypt SSH file with Chezmoi
|
||
|
logg info 'Decrypting the $(basename "$SSH_FILE") encrypted SSH file'
|
||
|
chezmoi decrypt "$SSH_FILE" > "$HOME/.ssh/$(basename "$SSH_FILE")" || EXIT_CODE=$?
|
||
|
|
||
|
### Handle failed decryption with warning log message
|
||
|
if [ -n "$EXIT_CODE" ]; then
|
||
|
logg warn "Unable to decrypt the file stored in $SSH_FILE"
|
||
|
fi
|
||
|
|
||
|
### Apply appropriate permission to decrypted ~/.ssh file
|
||
|
if [ -f "$HOME/.ssh/$(basename "$SSH_FILE")" ]; then
|
||
|
logg info "Applying appropriate permissions on $HOME/.ssh/$(basename "$SSH_FILE")"
|
||
|
chmod 600 "$HOME/.ssh/$(basename "$SSH_FILE")"
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
{{ end -}}
|
||
|
```
|