home · contact · privacy
Add script for actually getting start_root_server.sh onto server to run.
authorPlom Heller <plom@plomlompom.com>
Mon, 7 Sep 2026 11:32:10 +0000 (13:32 +0200)
committerPlom Heller <plom@plomlompom.com>
Mon, 7 Sep 2026 11:32:10 +0000 (13:32 +0200)
setup_scripts/_lib.sh
setup_scripts/install_server.sh [new file with mode: 0755]
setup_scripts/start_root_server.sh

index 900184d3e337c1a8ed30fb13ae8f44659b198581..d9f941ec82e22f13ac7aa461d45b1195f993f8e7 100644 (file)
@@ -3,6 +3,7 @@ SCRIPT_NAME=$0
 cd "$(dirname "${SCRIPT_NAME}")"
 
 # constants unlikely to change
+DIRNAME_SSH=.ssh
 FNAME_PROFILE=.profile
 NAME_DEV=dev
 PATH_DEV="/${NAME_DEV}"
@@ -17,6 +18,7 @@ PATH_MNT_ROOT="${PATH_MNT}/root"
 USERNAME=plom
 
 # constants derived from changeables
+PATH_MY_SSH="${HOME}/${DIRNAME_SSH}"
 PATH_PROFILE="${HOME}/${FNAME_PROFILE}"
 PATH_REPO=$(cd .. && pwd)
 
diff --git a/setup_scripts/install_server.sh b/setup_scripts/install_server.sh
new file mode 100755 (executable)
index 0000000..65464d0
--- /dev/null
@@ -0,0 +1,35 @@
+#!/bin/sh
+. "$(dirname "$0")/_lib.sh"
+
+# constants we might want to change at some point
+FNAME_REPO_TAR=repo.tar
+
+# constants derived from changeables
+NAME_REPO_DIR=$(basename "${PATH_REPO}")
+PATH_REPO_PARENT=$(dirname "${PATH_REPO}")
+PATH_SETUP_SCRIPT="./${NAME_REPO_DIR}/setup_scripts/start_root_server.sh"
+
+# inputs to confirm
+usage $# "server"
+SERVER=$1
+TARGET="root@${SERVER}"
+PATH_MY_KNOWN_HOSTS="${PATH_MY_SSH}/known_hosts"
+
+# sanity checks
+check_tools scp ssh ssh-keygen tar
+
+DIR_TEMP=$(mktemp --directory)
+PATH_REPO_TAR="${DIR_TEMP}/${FNAME_REPO_TAR}"
+msg 'Creating tar of repo in temporary directory %s …' "${DIR_TEMP}"
+tar cf "${PATH_REPO_TAR}" -C "${PATH_REPO_PARENT}" "${NAME_REPO_DIR}"
+
+msg 'Uploading repo tar to server …'
+if [ -e "${PATH_MY_KNOWN_HOSTS}" ]; then
+    ssh-keygen -f "${PATH_MY_KNOWN_HOSTS}" -R "${SERVER}"
+fi
+scp "${PATH_REPO_TAR}" "${TARGET}:~"
+rm -rf "${DIR_TEMP}"
+
+msg 'Unpacking repo and running setup script …'
+ssh "${TARGET}" tar xf "${FNAME_REPO_TAR}"
+ssh "${TARGET}" "${PATH_SETUP_SCRIPT}"
index 27d0a3612ecfbe2d55176976e8849631102adbab..35c69a8555a02d0488448fdef2018e0552b24bd5 100755 (executable)
@@ -2,16 +2,16 @@
 . "$(dirname "$0")/_lib.sh"
 
 # constants unlikely to change
+PATH_SSHD_DROPIN=/etc/ssh/sshd_config.d/60-ssh-hardening.conf
+
+# constants derived from changeables
 PATH_HOME_USER="/home/${USERNAME}"
-DIRNAME_SSH=.ssh
-PATH_ROOT_SSH="${HOME}/${DIRNAME_SSH}"
 PATH_USER_SSH="${PATH_HOME_USER}/${DIRNAME_SSH}"
-PATH_SSHD_DROPIN=/etc/ssh/sshd_config.d/60-ssh-hardening.conf
 
 start_root server
 
 msg 'Moving ssh access from root to user …'
-mv "${PATH_ROOT_SSH}" "${PATH_HOME_USER}"
+mv "${PATH_MY_SSH}" "${PATH_HOME_USER}"
 chown -R "${USERNAME}:${USERNAME}" "${PATH_USER_SSH}"
 
 msg 'Hardening SSH login: no root login, no password auth …'