run-qemu.sh : injecter pubkey(s) hôte dans /root/.ssh/authorized_keys

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
This commit is contained in:
Votre Nom 2026-05-16 17:20:31 +02:00
parent 0230d80e6c
commit 3fe50208a1

View file

@ -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