forked from kay/RouterOS
Chatlog: M7 SSH-Hostkey-TOFU-Session ergänzt (Session-Ende)
Kompletter Verlauf von Werksreset-Meldung über SSH-Hostkey-TOFU-Bau (API-Verifikation im swift-nio-ssh-Quellcode, Fingerprint-Kreuzcheck per ssh-keygen, Test-Isolationsbug gefunden+gefixt) bis zum fehlenden Trennen-Button und der finalen Live-Bestätigung. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HReLXMbmPvtQ23p1iWiJNW
This commit is contained in:
+36
-3
@@ -193,8 +193,41 @@ Fix → erneuter Test:
|
||||
- "speichere alles weg, damit wir eventuell später weiter machen können"
|
||||
→ `HANDOFF.md` und dieses Chatlog auf den aktuellen Stand gebracht.
|
||||
|
||||
## Fortsetzung: M7-Härtung (SSH-Hostkey-TOFU)
|
||||
|
||||
- Neuer Tag. Nutzer: "die Ferwall regeln hab ich aufgeräumt (Werksreset
|
||||
durchgeführt). lass uns mit dem Härten weitermachen." → M7 gestartet
|
||||
mit dem größten offenen Punkt: SSH-Hostkey-TOFU (`SSHTransport` nutzte
|
||||
bisher `.acceptAnything()`).
|
||||
- API vor der Umsetzung im swift-nio-ssh-Quellcode verifiziert statt
|
||||
geraten (`NIOSSHPublicKey.write(to:)` für die Wire-Format-Bytes,
|
||||
`NIOSSHClientServerAuthenticationDelegate`-Protokoll,
|
||||
`EventLoopPromise` aus `NIOCore`). `SSHHostKeyFingerprint` +
|
||||
`SSHHostKeyTrustStore` gebaut, `SSHTransport` conformt jetzt selbst
|
||||
zum Delegate-Protokoll (wie `RestTransport` zu `URLSessionDelegate`),
|
||||
`ConnectionService` bekam einen zweiten Bestätigungs-Flow analog zum
|
||||
REST-Zertifikat.
|
||||
- Für den Unit-Test wurden zwei echte Wegwerf-SSH-Schlüssel per
|
||||
`ssh-keygen` erzeugt und der Fingerabdruck gegen `ssh-keygen -lf`
|
||||
kreuzgeprüft (`SHA256:Hllxv6LLoHl2XTIXGGjUYJHbPFoH2F7iMrR74C5J95g`) —
|
||||
stimmte exakt überein. Ein Test-Isolationsbug (geteilte echte
|
||||
`UserDefaults` zwischen zwei Tests ohne `tearDown`) wurde dabei
|
||||
gefunden und gefixt. Alle 26 Tests grün, `xcodebuild test` lief diesmal
|
||||
ohne den bekannten Gatekeeper-Hänger durch.
|
||||
- Nutzer testete live, meldete danach: "der 'Trennen-Button' fehlt noch"
|
||||
— `ConnectionService.disconnect()` gab es schon (bisher nur intern
|
||||
nach Werksreset genutzt), aber keinen UI-Zugang im Verbinden-Tab.
|
||||
Button ergänzt.
|
||||
- Nutzer bestätigte danach: "funktioniert sauber" — SSH-Hostkey-TOFU
|
||||
live verifiziert (Dialog bei erster Verbindung, kein Dialog nach
|
||||
Trennen+Neuverbinden).
|
||||
- "erstmal alles speichern, dann schluß für heute" → `HANDOFF.md` und
|
||||
dieses Chatlog aktualisiert, Session beendet.
|
||||
|
||||
## Stand am Ende dieser Session
|
||||
|
||||
Siehe `HANDOFF.md` für den vollständigen technischen Stand, offene
|
||||
Punkte (Firewall-Regel-Nachtest, WLAN-Hardware-Test, M7-Härtung) und
|
||||
bekannte Einschränkungen.
|
||||
Siehe `HANDOFF.md` für den vollständigen technischen Stand. SSH-Hostkey-
|
||||
TOFU (M7) ist fertig und live bestätigt. Offene Punkte: Firewall-Regeln
|
||||
mit korrektem WAN-Port nach dem Werksreset noch nicht erneut kontrolliert,
|
||||
WLAN-`.set`-Pfad weiterhin ohne Testgerät mit echtem WLAN-Chip, Rest von
|
||||
M7 (Fehlerzustände/Politur, REST-Schreibtest mit aktivem `www-ssl`).
|
||||
|
||||
Reference in New Issue
Block a user