Schluessel, Personen, Private Key anzeigen, authorized_keys-Parser und Ausrollen von Public Keys; vorgezogen das Ausrollen von Private Keys mit ssh-config und known_hosts. CHANGELOG und DEVLOG nachgetragen. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
4.0 KiB
4.0 KiB
Changelog
Alle nennenswerten Änderungen an SSHKeyVault werden in dieser Datei dokumentiert.
Das Format basiert auf Keep a Changelog, und dieses Projekt folgt Semantic Versioning.
[Unveröffentlicht]
Hinzugefügt
Geändert
Behoben
Sicherheit
[0.2.0] – 2026-10-12
Phase 2: Schlüssel, Personen und Ausrollen von Public Keys – dazu vorgezogen aus Phase 3 das Ausrollen von Private Keys.
Hinzugefügt
- Schlüssel erzeugen (ed25519, RSA-4096, optional mit Passphrase), Paar oder Public Key importieren, Public Key exportieren; Liste mit Filter, Detailseite mit Verwendungen (#012)
- Personen verwalten; Self-Service „Meine Schlüssel“: jeder Benutzer hinterlegt eigene Public Keys, wirksam erst nach Zuweisung (#013)
- Private Key anzeigen und herunterladen – nur Admin, nur nach erneuter Bestätigung, genau einmal abholbar; Private Key aus SSHKeyVault löschen (#014)
- authorized_keys-Parser und verwalteter Block: fremde Zeilen bleiben bytegenau, beschädigte Blöcke werden nie überschrieben, Deployment-Key ist vor dem Entfernen geschützt (#015)
- Public Keys Hosts oder Hostgruppen zuweisen, Dry-Run mit Diff, Ausrollen mit Backup und optimistischer Sperre; Ansicht je Schlüssel und je Host (#016)
- Private Key auf einen Quell-Host ausrollen, mit verwaltetem Block in
~/.ssh/configundknown_hosts(#017) - Verbindungstest von Host A nach Host B (#020, Teil)
- Zielbenutzer anlegen und sudoers pflegen – Grundlage, Oberfläche folgt (#018, Teil)
- Vorlagen: Platzhalter und Prüfung – Grundlage, Oberfläche folgt (#019, Teil)
Sicherheit
- Importierte Private Keys reisen nur verschlüsselt im Job; Vorgang, Protokoll und Browser sehen sie nie (Tests)
- Private-Key-Ziele nimmt der Dry-Run nur für Admins auf
- Dateien in fremden Home-Verzeichnissen werden als deren Benutzer gelesen und geschrieben (Symlink-Schutz)
[0.1.0] – 2026-10-12
Phase 1: Grundgerüst, Anmeldung, Hosts und Bootstrap.
Hinzugefügt
- Projektplan mit Architektur, Datenmodell, Sicherheitskonzept und Phasenplan (
docs/PLAN.md), Issues für alle fünf Phasen - Projektgerüst: Next.js 16, Prisma 7, PostgreSQL 17, pnpm, ESLint/Prettier/Vitest/Playwright, commitlint (#001)
- Design „Tresor“: Design-Tokens, selbst gehostete Schriften, Logo, Favicon und PWA-Icons, Seitenleiste, Grundkomponenten (#002)
- Datenmodell für alle Phasen mit Datenbankregeln (CHECK, partielle Indizes, Trigger) und Seed mit Notfall-Admin und eingebauten Vorlagen „Deployment-Zugang“, „Backup-Zugang“, „Admin-Zugang Person“ (#003)
- Anmeldung per OIDC (authentik) mit Rollen Admin/Operator/Leser aus Gruppen; Notfall-Admin mit Passwort und Pflicht-TOTP; erneute Bestätigung vor kritischen Aktionen (#004)
- Revisionssicheres Protokoll: append-only, Hash-Kette, Prüffunktion (#005)
- OpenSSH-Schlüssel (ed25519, RSA-4096) erzeugen, lesen und schreiben ohne
ssh-keygen, kompatibel geprüft; Envelope Encryption mit Master-Key; Deployment-Key der Instanz (#006) - Worker mit pg-boss und Vorgängen mit Fortschrittsanzeige; Dockerfile und Docker Compose für den Betrieb (#007)
- Hosts und Hostgruppen anlegen, bearbeiten, archivieren, filtern; Demo-Daten mit
SSHKV_SEED_DEMO=1(#008) - Host-Key-Prüfung nach TOFU: abrufen, Fingerprint bestätigen oder ablehnen, strikte Prüfung bei jeder Verbindung, Warnung bei Änderung (#009)
- Bootstrap neuer Hosts per Einmal-Passwort oder Befehl zum Kopieren, mit Dienstbenutzer
sshkvund sudoers; sshd-Hinweise (#010) - SSH-Testziele (Debian 13) und Mock-OIDC für Integrations- und E2E-Tests (#011)
Sicherheit
- Private Keys nur verschlüsselt in der Datenbank; nur der Worker kann sie öffnen – strukturell getestet
- Ein
pg_dumpenthält keinen Klartext-Schlüssel (Test) - Bootstrap-Passwort wird nirgends gespeichert (Test); Dateien im Home des Zielbenutzers werden als dieser Benutzer geschrieben (Symlink-Test gegen
/etc/shadow) - Content-Security-Policy mit Nonce, Sicherheits-Kopfzeilen, Rate-Limit für den Notfallzugang