From 95f824b626271f851fee907f4dc170dd23851858 Mon Sep 17 00:00:00 2001 From: Votre Nom Date: Sat, 16 May 2026 17:29:31 +0200 Subject: [PATCH] SSH auto-start au boot : service file init Redox pour sshd MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- run-qemu.sh | 13 +++++++++++++ tools/redox-services/30_sshd.service | 10 ++++++++++ 2 files changed, 23 insertions(+) create mode 100644 tools/redox-services/30_sshd.service diff --git a/run-qemu.sh b/run-qemu.sh index fdff6d0..bcf11cc 100755 --- a/run-qemu.sh +++ b/run-qemu.sh @@ -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 diff --git a/tools/redox-services/30_sshd.service b/tools/redox-services/30_sshd.service new file mode 100644 index 0000000..3e469ea --- /dev/null +++ b/tools/redox-services/30_sshd.service @@ -0,0 +1,10 @@ +[unit] +description = "OpenSSH SSH Daemon" +requires_weak = [ + "10_net.target", +] + +[service] +cmd = "/usr/bin/sshd" +args = ["-D"] +type = "simple"