From: Plom Heller Date: Mon, 7 Sep 2026 11:32:10 +0000 (+0200) Subject: Add script for actually getting start_root_server.sh onto server to run. X-Git-Url: https://plomlompom.com/repos/booking/add_task?a=commitdiff_plain;h=81c1165c2103df1ccce10225e43f541caff1fd9a;p=confplom Add script for actually getting start_root_server.sh onto server to run. --- diff --git a/setup_scripts/_lib.sh b/setup_scripts/_lib.sh index 900184d..d9f941e 100644 --- a/setup_scripts/_lib.sh +++ b/setup_scripts/_lib.sh @@ -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 index 0000000..65464d0 --- /dev/null +++ b/setup_scripts/install_server.sh @@ -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}" diff --git a/setup_scripts/start_root_server.sh b/setup_scripts/start_root_server.sh index 27d0a36..35c69a8 100755 --- a/setup_scripts/start_root_server.sh +++ b/setup_scripts/start_root_server.sh @@ -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 …'