run-qemu.sh : SSH pubkey vers /home/root/.ssh/, pas /root/.ssh/
Bug détecté en runtime : sshd OpenSSH 9.8 sur Redox cherche authorized_keys dans le homedir de l'utilisateur, qui sur Redox est /home/root/ et NON /root/ comme sur Linux. Le déploiement précédent mettait le fichier au mauvais endroit → ssh tombait toujours en password. Fix : injecter dans \$MOUNT/home/root/.ssh/authorized_keys avec perms 700/600. Le path Linux /root/.ssh/ est laissé non-touché (vide ou inexistant). Validé : après ce fix le `ssh root@localhost -p 8022` connecte directement sans password. Leyoda 2026 – GPLv3
This commit is contained in:
parent
3fe50208a1
commit
44fd7c282b
1 changed files with 12 additions and 9 deletions
21
run-qemu.sh
21
run-qemu.sh
|
|
@ -149,9 +149,11 @@ 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 : injecter la pubkey hôte dans /home/root/.ssh/authorized_keys du
|
||||
# guest. ATTENTION : sous Redox le homedir de root est /home/root/ (pas
|
||||
# /root/ comme Linux). sshd cherche bien sur le path Redox, sinon publickey
|
||||
# est silencieusement ignoré.
|
||||
# Permet `ssh root@localhost -p 8022` sans password une fois sshd lancé.
|
||||
SSH_DIR_HOST="$HOME/.ssh"
|
||||
PUBKEYS_FOUND=()
|
||||
for k in id_ed25519.pub id_rsa.pub id_ecdsa.pub; do
|
||||
|
|
@ -160,14 +162,15 @@ for k in id_ed25519.pub id_rsa.pub id_ecdsa.pub; do
|
|||
fi
|
||||
done
|
||||
if [[ ${#PUBKEYS_FOUND[@]} -gt 0 ]]; then
|
||||
mkdir -p "$MOUNT/root/.ssh"
|
||||
chmod 700 "$MOUNT/root/.ssh"
|
||||
: > "$MOUNT/root/.ssh/authorized_keys"
|
||||
GUEST_ROOT_SSH="$MOUNT/home/root/.ssh"
|
||||
mkdir -p "$GUEST_ROOT_SSH"
|
||||
chmod 700 "$GUEST_ROOT_SSH"
|
||||
: > "$GUEST_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"
|
||||
echo "==> injecter pubkey hôte $k dans /home/root/.ssh/authorized_keys (homedir Redox)"
|
||||
cat "$k" >> "$GUEST_ROOT_SSH/authorized_keys"
|
||||
done
|
||||
chmod 600 "$MOUNT/root/.ssh/authorized_keys"
|
||||
chmod 600 "$GUEST_ROOT_SSH/authorized_keys"
|
||||
else
|
||||
echo "WARN : aucune pubkey hôte trouvée dans $SSH_DIR_HOST/. SSH par password seulement." >&2
|
||||
fi
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue