Ein Durchgang fuer den Kern-Anwendungsfall: Vorlage und Zweck, Host A, Host B mit Zielbenutzer, Zusammenfassung, dann Schluessel erzeugen, Benutzer anlegen, zuweisen, Dry-Run, ausrollen und Verbindung testen. Die Vorlage Deployment-Zugang fuellt deploy, Ablaufdatum, from= und Alias vor; bei root als Ziel warnt der Assistent ausdruecklich. Die Ausfuehrung ist wiederaufnehmbar: wird mittendrin eine frische Bestaetigung fuer das Zielkonto noetig, geschieht sie in einem neuen Tab, und nichts wird doppelt angelegt. Zielkonten laufen als eigene Vorgaenge (neue Migration) und merken sich, ob sshkv den Benutzer angelegt hat - nur dann loescht ein Widerruf ihn spaeter. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
import type { Metadata } from "next";
|
||||
import { Assistent } from "@/components/assistent/Assistent";
|
||||
import { Breadcrumb } from "@/components/ui/Breadcrumb";
|
||||
import { Seitenkopf } from "@/components/ui/Seitenkopf";
|
||||
import { assistentDaten } from "@/server/queries/assistent";
|
||||
import { bestaetigungFrisch, sitzungErforderlich } from "@/server/auth/sitzungspflicht";
|
||||
|
||||
export const metadata: Metadata = { title: "Host-zu-Host-Assistent" };
|
||||
|
||||
/**
|
||||
* Host-zu-Host-Assistent (#020): ein Schluesselpaar fuer genau einen Zweck, Private Key auf
|
||||
* Host A, Public Key auf Host B, Verbindungstest. Nur Admins – es wird ein Private Key ausgerollt.
|
||||
*/
|
||||
export default async function AssistentSeite() {
|
||||
const { benutzer } = await sitzungErforderlich("privateKeyAusrollen", "/assistent");
|
||||
const daten = await assistentDaten();
|
||||
return (
|
||||
<div className="flex flex-col gap-6 sm:gap-7">
|
||||
<Seitenkopf
|
||||
oben={<Breadcrumb pfad={[{ titel: "Übersicht", href: "/" }, { titel: "Host-zu-Host-Assistent" }]} />}
|
||||
titel="Host-zu-Host-Assistent"
|
||||
untertitel="Host A soll sich per SSH an Host B anmelden – Schlüssel, Ausrollen und Test in einem Durchgang."
|
||||
/>
|
||||
<Assistent daten={daten} bestaetigt={bestaetigungFrisch(benutzer.bestaetigtAm)} />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user