Auf der Seite eines Schluessels: Public Key einem Host oder einer Gruppe zuweisen, Private Key (nur Admin) auf einen Quell-Host legen - mit ~/.ssh/config-Eintrag und dem Host-Key des Ziels in known_hosts -, Dry-Run fuer alle Ziele, anwenden und die Verbindung von A nach B testen. Der Kern-Anwendungsfall laeuft damit im Browser durch (E2E). Der Dry-Run nimmt Private-Key-Ziele nur fuer Admins auf: sonst koennte ein Operator einen vorbereiteten Private Key ausrollen lassen. Die Vorschau zeigt je Datei die Aktion; der Inhalt eines Private Keys erreicht den Browser nie. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
36 lines
961 B
TypeScript
36 lines
961 B
TypeScript
"use client";
|
||
|
||
import { AusrollDialog } from "@/components/ausrollen/AusrollDialog";
|
||
import { PrivateZuweisenFormular } from "@/components/ausrollen/PrivateZuweisenFormular";
|
||
import type { ZielAuswahl } from "@/server/queries/ziele";
|
||
|
||
/** „+ Ausrollen“ in der Karte „Private Key ausgerollt auf“ (#017) – nur Admins. */
|
||
export function PrivateAusrollenAktion({
|
||
schluesselId,
|
||
darf,
|
||
auswahl,
|
||
slug,
|
||
passphraseGeschuetzt = false,
|
||
}: {
|
||
schluesselId: string;
|
||
darf: boolean;
|
||
auswahl?: ZielAuswahl;
|
||
slug?: string;
|
||
passphraseGeschuetzt?: boolean;
|
||
}) {
|
||
if (!darf || !auswahl || !slug) return null;
|
||
return (
|
||
<AusrollDialog titel="Private Key ausrollen">
|
||
{(schliessen) => (
|
||
<PrivateZuweisenFormular
|
||
schluesselId={schluesselId}
|
||
slug={slug}
|
||
auswahl={auswahl}
|
||
passphraseGeschuetzt={passphraseGeschuetzt}
|
||
beiErfolg={schliessen}
|
||
/>
|
||
)}
|
||
</AusrollDialog>
|
||
);
|
||
}
|