Einfach das Home-Verzeichnis des verwendeten Users (das wäre in jedem Falle
root, iirc) so setzen, daß darunter ein Verzeichnis
.ssh existiert, in das man dann eine
authorized_keys legen kann.
Die tatsächlich zu verwendenden Keys (also die
authorized_keys) kann/sollte man dann aus einer signierten Datei wiederherstellen lassen - die kann man bei der Installation oder bei Änderungen einfach mit dem Box-Key selbst signieren (dazu kann man
sign_image (
https://github.com/PeterPawn/YourFritz/blob/main/signimage/sign_image) mit
SIGN_ON_BOX=1 aufrufen - braucht eigentlich nur ein OpenSSL und
getprivatekeypassword zusätzlich) und VOR dem Entpacken (im Rahmen des Start-Skripts für
dropbear, wo man auch das Home-Verzeichnis von
root einfach auf
/var setzen kann, was dann
/var/.ssh als Verzeichnis für die Datei ergibt) aus dem NAS-Flash oder von einem USB-Volume dann diese Signatur wieder prüfen lassen (
check_signed_image (
https://github.com/PeterPawn/YourFritz/blob/main/signimage/check_signed_image) mit Option
-s), damit einem da niemand einen falschen/nicht autorisierten Key unterjubeln kann.
Dann kann man diese Datei auch guten Gewissens auf unsicheren Volumes herumliegen lassen (die Public-Keys im Inhalt sind ohnehin "öffentlich") und wer sich den privaten Key seiner Box herauszieht (oder sogar Key und Zertifikat mit eigenen Dateien ersetzt - das geht ja über's GUI ganz einfach), der kann notfalls auch "extern" dieses Archiv signieren und dann erst auf die Box bringen (um mal dem "Henne<->Ei"-Problem bei der ersten Verwendung die Spitze abzuschlagen).
Wer will, kann aber auch (bei VR9-Modellen zumindest) diese
authorized_keys ganz simpel im YAFFS2-Teil unter
/wrapper ablegen und dann lediglich von
/var/.ssh/authorized_keys dorthin verlinken - um beim verwendeten Home-Verzeichnis zu bleiben. Eine andere Option (immer noch bei VR9) ist es natürlich auch, das Home-Verzeichnis einfach auf
/wrapper zu setzen ... das ist üblicherweise ein
read-only-Mount, läßt sich aber mit einem kühnen
mount -o remount,rw /wrapper auch wieder beschreibbar mounten und dann kann man dort wieder ändern und sich dort ein Verzeichnis
.ssh anlegen.
Meine "Spezialversion" von
dropbear ist jedenfalls absichtlich so stark eingeschränkt ... nur
root kann sich anmelden und auch das nur mit Key und auch nur mit RSA-Keys als Server-Identity, WEIL ich ja den Key der Box (den sie sich entweder selbst generiert oder den der Benutzer hochladen kann über das AVM-GUI) verwenden will und keinen anderen.
Die Idee dabei ist es aber eben nicht, eine
authorized_keys gleich mit ins Image zu packen (kann man auch machen, ist aber dann schon SEHR unflexibel), sondern diese an einer beschreibbaren Stelle im Rahmen des Startprozesses für den
dropbear-Server dynamisch zu erzeugen ... aber eben mit etwas Absicherung, damit da kein Angreifer einfach eigene Keys hinzufügen kann. Ob man das dann wirklich als
authorized_keys-Datei schon so abgespeichert hat und es nur noch kopiert oder ob man sich die gesamte Datei dynamisch aus einzelnen "pubkey"-Dateien zusammenbastelt, ist wieder Geschmackssache ... wobei der
dropbear es auch beherrscht, für einen Key ein vordefiniertes Kommando zu hinterlegen - man kann dann also mit dem passenden privaten Schlüssel auch noch keine "komplette Session" starten, sondern "nur" das verknüpfte Kommando ausführen. Das spricht in meinen Augen für die erste Variante, weil die dynamische Erzeugung des Inhalts komplexer wird, wenn da gleichzeitig noch diese Optionen genutzt werden sollen.
Jedenfalls gibt es m.W. keine Limitierungen (mal von den Zugriffsrechten abgesehen), was das Verlinken (per Symlink, weil es per Hardlink ja innerhalb eines Filesystems sein müßte) von
.ssh oder auch erst der
authorized_keys betrifft. Man kann also selbst mit einem Home-Verzeichnis
/var für
root (die AVM-Vorgaben
/ ist da ohnehin Gülle, weil das per Definition dann ein "nur lesbares" Home-Verzeichnis ergibt) noch per Symlink entscheiden, wo letztlich die Liste der zulässigen öffentlichen Schlüssel für SSH-Zugriffe gesucht wird.