Hier der versprochene Patch.
Alles in allem funktioniert sshd damit. Ausnahme ist das login
Laut Debug messages kann man sich einloggen, aber sshd schmeißt mich wieder raus, da /var die Rechte 777 hat.
Siehe openssh code auth.c
Code:
/* check the open file to avoid races */
if (fstat(fileno(f), &st) < 0 ||
(st.st_uid != 0 && st.st_uid != uid) ||
(st.st_mode & 022) != 0) {
snprintf(err, errlen, "bad ownership or modes for file %s",
buf);
return -1;
}
Den müßten wir entfernen. Welche Implikationen hat dies? Hm, Kommentare?
Weiterhin: die derzeitige Lösung mit den authorized_keys ist unbefriedigend. Man kann keine normalen Nutzer mit auth keys verwenden, bzw. alle nutzen die GLEICHE authorized_keys Datei!
Problem ist jetzt aber, dass dropbear einen Link von ~root/.ssh nach /tmp/flash/dropbear setzt (damit haben wir ein Problem, wenn wir die auth_keys Datei nicht entsprechend in sshd_config setzen). Was können wir tun:
- link entfernen und auf unseres Verzeichnis verlinken (die auth_keys Datei wird über die OpenSSH Seite konfiguriert; dropbear konfig ist nicht mehr aktiv)
- link lassen und nur bei nichtvorhandensein wird der Link gesetzt (es ist nicht deterministisch, welches webfrontend konfiguriert die auth_key Datei)
- ein komplett neues Package erstellen, welches immer von OpenSSH und dropbear angezogen wird, mit dem die auth_keys gesetzt/bearbeitet wird
Ich bin für letzteres.
Ciao
Stephan