summaryrefslogtreecommitdiff
path: root/bin/kj-sync-keys.sh
diff options
context:
space:
mode:
Diffstat (limited to 'bin/kj-sync-keys.sh')
-rwxr-xr-xbin/kj-sync-keys.sh55
1 files changed, 0 insertions, 55 deletions
diff --git a/bin/kj-sync-keys.sh b/bin/kj-sync-keys.sh
deleted file mode 100755
index 8c71bdd..0000000
--- a/bin/kj-sync-keys.sh
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/usr/bin/env bash
-#
-# This script syncs authorized keys (found in the $authorized_keys_file below)
-# to a list of remote hosts. It does not touch existing keys unless overwrite
-# is set to true, but creates a special section containing the keys.
-
-declare -r begin_marker="### BEGIN MANAGED_BY_KJ_SYNC_AUTHORIZED_KEYS.SH ###"
-declare -r end_marker="### END MANAGED_BY_KJ_SYNC_AUTHORIZED_KEYS.SH ###"
-# If overwrite=true, the entire authorized_keys file is overwritten.
-declare -r overwrite=false
-declare -r tmpdir=$(mktemp -d /tmp/kj_sync_authorized_keys.XXXXX)
-
-targets=(
- shape
- sabaki
- semeai
- dragon
- root@orbekk.osl.trygveandre.net
- #login.pvv.ntnu.no
- gote.orbekk.com
-)
-authorized_keys_file=$HOME/dotfiles/authorized_keys
-if [[ ! -f "${authorized_keys_file}" ]]; then
- echo "could not find authorized_keys_file: ${authorized_keys_file}"
- exit 1
-fi
-
-add_keys_to_file() {
- local filename="$1"
- awk \
- "/$begin_marker/"' { exit 0 } { print }' \
- ${filename} > ${filename}.header
- awk \
- "/$end_marker/"' { should_output=1 } !'"/$end_marker/"' { if (should_output) { print } }' \
- ${filename} > ${filename}.footer
-
- cat "${filename}.header" > ${filename}
- echo "${begin_marker}" >> ${filename}
- echo "# WARNING: ANY CHANGES WILL BE OVERWRITTEN" >> ${filename}
- cat "$authorized_keys_file" >> ${filename}
- echo "${end_marker}" >> ${filename}
- cat "${filename}.footer" >> ${filename}
-}
-
-for target in ${targets[@]}; do
- echo "syncing $target"
- tmp="${tmpdir}/${target}"
- touch ${tmp}
- if [[ $overwrite != true ]]; then
- ssh ${target} 'bash -c "cat .ssh/authorized_keys || echo -n"' > ${tmp}
- fi
- add_keys_to_file "${tmp}"
- ssh ${target} 'mkdir -p .ssh'
- cat "${tmp}" | ssh ${target} ' bash -c "cat > .ssh/authorized_keys.tmp && mv .ssh/authorized_keys{.tmp,}"'
-done