I am running a simple service to tweak SSHD on first boot (the script is at the 
bottom of this mail). This is on Debian Bookworm incase it makes any difference.

If I configure my service as:

[Unit]
Description=ITS Generate SSH Server Keys
Wants=ssh.service
Before=ssh.service
[Service]
ExecStart=/usr/bin/bash /path/to/script
Type=oneshot
[Install]
WantedBy=multi-user.target

It never completes. Logging into the server console, "dpkg-reconfigure" just 
seems to sit there in the backround forever and so SSHD never gets 
restarted/reloaded.

Meanwhile, if I change the [Service] definition to:

[Service]
ExecStart=/usr/bin/bash /path/to/script
RemainAfterExit=true
Type=exec

"dpkg-reconfigure" appears to do its job correctly, and as a result SSHD gets 
restarted/reloaded, I can login via SSH and everything is great.

I just don't understand why its doing that.

Laura

My script:

#!/usr/bin/env bash
set -uo pipefail
HAS_RUN_FLAG="/path/to/my.flag"
if [[ ! -f "${HAS_RUN_FLAG}" ]];then
    sed -i'' 's/^Subsystem\s*sftp/#&/' /etc/ssh/sshd_config
    dpkg-reconfigure openssh-server
    touch "${HAS_RUN_FLAG}"
fi


Reply via email to