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