SSH auto-start au boot : service file init Redox pour sshd

Ajout tools/redox-services/30_sshd.service au format TOML init Redox :

  [unit]
  description = "OpenSSH SSH Daemon"
  requires_weak = ["10_net.target"]

  [service]
  cmd = "/usr/bin/sshd"
  args = ["-D"]
  type = "simple"

Path absolu pour cmd (sshd refuse de re-exec sinon, vu en runtime).
Args ["-D"] = ne pas daemonize (init gère le lifecycle). type "simple"
= init considère le process up dès le fork, pas d'attente notify.

run-qemu.sh copie maintenant automatiquement tous les *.service de
tools/redox-services/ dans /usr/lib/init.d/ du guest. Bénéfice : à
chaque ./run-qemu.sh, sshd est armé pour démarrer au boot suivant.

Pré-requis pour que ça marche au runtime :
- openssh déjà installé (via pkg install openssh)
- Host keys générées (ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N "")
- /home/root/.ssh/authorized_keys peuplé (auto via run-qemu.sh)

Si openssh manque, sshd crash au boot mais init continue (requires_weak,
pas requires hard).

Leyoda 2026 – GPLv3
This commit is contained in:
Votre Nom 2026-05-16 17:29:31 +02:00
parent 44fd7c282b
commit 95f824b626
2 changed files with 23 additions and 0 deletions

View file

@ -175,6 +175,19 @@ else
echo "WARN : aucune pubkey hôte trouvée dans $SSH_DIR_HOST/. SSH par password seulement." >&2
fi
# SSH : déployer le service file init Redox pour démarrer sshd au boot.
# Pré-requis : openssh déjà installé via pkg + host keys générées dans
# /etc/ssh/ (cf docs/SSH-setup.md à venir). Si openssh manque, sshd
# crashera au boot mais le système continuera (les autres services ne
# sont pas bloqués car requires_weak).
for service in "$ROOT/tools/redox-services"/*; do
if [[ -f "$service" ]]; then
echo "==> installer service init $(basename "$service") dans /usr/lib/init.d/"
mkdir -p "$MOUNT/usr/lib/init.d"
cp -vp "$service" "$MOUNT/usr/lib/init.d/"
fi
done
# --- 4. umount avant make qemu (sinon QEMU et FUSE se battent sur le même fichier) ---
echo "==> démonter $MOUNT"
sync

View file

@ -0,0 +1,10 @@
[unit]
description = "OpenSSH SSH Daemon"
requires_weak = [
"10_net.target",
]
[service]
cmd = "/usr/bin/sshd"
args = ["-D"]
type = "simple"