feat(ssh): strikte Host-Key-Pruefung und TOFU im Worker (#009)

Jede Verbindung prueft den Host-Key gegen die vertrauten Keys des
Hosts und bietet nur deren Algorithmen an - sonst koennte der Server
einen Key eines anderen Typs zeigen, den nie jemand gesehen hat. Ein
abweichender Key bricht vor dem Senden von Zugangsdaten ab, wird als
ausstehend festgehalten und oeffnet eine Abweichung.

Abrufen bricht die Verbindung im hostVerifier ab: der Mensch
entscheidet, nie der Code. Einen vertrauten Key zu ersetzen verlangt
ein ausdrueckliches ersetzen und eine frische Bestaetigung.

Integrationstest gegen ein echtes sshd inklusive Host-Key-Wechsel.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-12 09:37:09 +02:00
co-authored by Claude Opus 5.5
parent ad97c8e9f1
commit 353b751df2
10 changed files with 800 additions and 3 deletions
+7 -3
View File
@@ -1,7 +1,11 @@
import type { HandlerTabelle } from "@/worker/ausfuehren";
import { erreichbarkeitHandler, hostKeyAbrufenHandler } from "@/worker/ablaeufe/hostkey";
/**
* Welche Vorgangsart wer ausfuehrt. Waechst mit den Issues: Host-Key (#009), Bootstrap
* (#010), Ausrollen (#016), Abgleich (#021) …
* Welche Vorgangsart wer ausfuehrt. Waechst mit den Issues: Bootstrap (#010),
* Ausrollen (#016), Abgleich (#021) …
*/
export const HANDLER: HandlerTabelle = {};
export const HANDLER: HandlerTabelle = {
HOSTKEY_ABRUFEN: hostKeyAbrufenHandler,
ERREICHBARKEIT: erreichbarkeitHandler,
};