From 060cbce1c5f32c3bfa1be72a6a260281e4d54241 Mon Sep 17 00:00:00 2001 From: buildplan Date: Fri, 17 Oct 2025 21:45:51 +0100 Subject: [PATCH] systemd override for ssh port rollback --- du_setup.sh | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/du_setup.sh b/du_setup.sh index 2a05e5b..91196cb 100644 --- a/du_setup.sh +++ b/du_setup.sh @@ -1895,6 +1895,20 @@ rollback_ssh_changes() { fi print_info "Restored original sshd_config from $SSHD_BACKUP_FILE." log "Restored sshd_config from $SSHD_BACKUP_FILE." + # Ensure correct port rollback if already using custom port + print_info "Applying a systemd override to ensure rollback to port $PREVIOUS_SSH_PORT..." + log "Rollback: Creating override to enforce port $PREVIOUS_SSH_PORT." + if [[ "$USE_SOCKET" == true ]]; then + mkdir -p /etc/systemd/system/ssh.socket.d + printf '%s\n' "[Socket]" "ListenStream=" "ListenStream=$PREVIOUS_SSH_PORT" > /etc/systemd/system/ssh.socket.d/override.conf + else + local service_for_rollback="ssh.service" + if systemctl list-units --full -all --no-pager | grep -qE "[[:space:]]sshd.service[[:space:]]"; then + service_fort_rollback="sshd.service" + fi + mkdir -p "/etc/systemd/system/${service_for_rollback}.d" + printf '%s\n' "[Service]" "ExecStart=" "ExecStart=/usr/sbin/sshd -D -p $PREVIOUS_SSH_PORT" > "/etc/systemd/system/${service_for_rollback}.d/override.conf" + fi else print_error "Backup file not found at $SSHD_BACKUP_FILE." log "Rollback failed: $SSHD_BACKUP_FILE not found."