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.