diff --git a/run-qemu.sh b/run-qemu.sh index e1ab624..fdff6d0 100755 --- a/run-qemu.sh +++ b/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