From 3fe50208a1f3d0a39d28147ea5aac7b4f2f693d5 Mon Sep 17 00:00:00 2001 From: Votre Nom Date: Sat, 16 May 2026 17:20:31 +0200 Subject: [PATCH] =?UTF-8?q?run-qemu.sh=20:=20injecter=20pubkey(s)=20h?= =?UTF-8?q?=C3=B4te=20dans=20/root/.ssh/authorized=5Fkeys?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Permet ssh -p 8022 root@localhost depuis l'hôte sans password une fois openssh installé et sshd lancé dans Redox. Scanne ~/.ssh/ de l'hôte pour id_ed25519.pub / id_rsa.pub / id_ecdsa.pub, append toutes celles trouvées dans /root/.ssh/authorized_keys avec permissions correctes (700 et 600). Bénéfice : le copier-coller depuis CachyOS vers Redox devient trivial via la session SSH, plus besoin de retaper les commandes dans la fenêtre QEMU graphique sans copier-coller. Warning explicite si aucune pubkey hôte n'est trouvée (ssh par password sera toujours possible, juste moins pratique). Leyoda 2026 – GPLv3 --- run-qemu.sh | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/run-qemu.sh b/run-qemu.sh index f3e8b38..e1ab624 100755 --- a/run-qemu.sh +++ b/run-qemu.sh @@ -149,6 +149,29 @@ for script in "$ROOT/tools/redox-scripts"/*; do fi done +# SSH : injecter la pubkey hôte dans /root/.ssh/authorized_keys du guest. +# Permet ssh root@localhost -p 8022 sans password. Cherche les pubkeys +# habituelles dans ~/.ssh/. Si plusieurs, toutes sont copiées. +SSH_DIR_HOST="$HOME/.ssh" +PUBKEYS_FOUND=() +for k in id_ed25519.pub id_rsa.pub id_ecdsa.pub; do + if [[ -f "$SSH_DIR_HOST/$k" ]]; then + PUBKEYS_FOUND+=("$SSH_DIR_HOST/$k") + fi +done +if [[ ${#PUBKEYS_FOUND[@]} -gt 0 ]]; then + mkdir -p "$MOUNT/root/.ssh" + chmod 700 "$MOUNT/root/.ssh" + : > "$MOUNT/root/.ssh/authorized_keys" + for k in "${PUBKEYS_FOUND[@]}"; do + echo "==> injecter pubkey hôte $k dans /root/.ssh/authorized_keys" + cat "$k" >> "$MOUNT/root/.ssh/authorized_keys" + done + chmod 600 "$MOUNT/root/.ssh/authorized_keys" +else + echo "WARN : aucune pubkey hôte trouvée dans $SSH_DIR_HOST/. SSH par password seulement." >&2 +fi + # --- 4. umount avant make qemu (sinon QEMU et FUSE se battent sur le même fichier) --- echo "==> démonter $MOUNT" sync