more stuff
This commit is contained in:
@ -5,6 +5,7 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Jumphost Admin</title>
|
||||
<link rel="stylesheet" href="/static/css/app.css">
|
||||
<link rel="stylesheet" href="/static/js/vendor/xterm.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="topbar">
|
||||
@ -304,6 +305,23 @@
|
||||
</div>
|
||||
<button type="submit">Zuordnen</button>
|
||||
</form>
|
||||
|
||||
<h3>SSH-Passwort (Alternative zum Schluessel)</h3>
|
||||
<p class="hint" id="ssh-pw-cred-status"></p>
|
||||
<p class="hint">Wird nur verwendet, wenn diesem Host KEIN SSH-Key zugeordnet ist -- ein zugeordneter Schluessel hat immer Vorrang.</p>
|
||||
<form id="host-ssh-pw-form" class="form-grid">
|
||||
<div>
|
||||
<label for="hspw-username">Benutzername</label>
|
||||
<input type="text" id="hspw-username" required maxlength="128" autocomplete="off">
|
||||
</div>
|
||||
<div class="full-width">
|
||||
<label for="hspw-password">SSH-Passwort setzen/aendern</label>
|
||||
<input type="text" id="hspw-password" required maxlength="512">
|
||||
</div>
|
||||
<p class="hint full-width">Passwort wird AES-256-GCM-verschluesselt gespeichert und nie wieder ausgegeben; beim Aendern bitte beide Felder ausfuellen.</p>
|
||||
<button type="submit">Speichern</button>
|
||||
<button type="button" class="btn-danger" id="hspw-delete-btn">Loeschen</button>
|
||||
</form>
|
||||
</div>
|
||||
<div id="host-detail-rdp" class="hidden">
|
||||
<h3>RDP-Zugangsdaten</h3>
|
||||
@ -323,6 +341,7 @@
|
||||
</div>
|
||||
<p class="hint full-width">Benutzername, Domaene und Passwort gehoeren zusammen und werden gemeinsam gespeichert. Das Passwort wird AES-256-GCM-verschluesselt abgelegt und nie wieder ausgegeben; beim Aendern bitte alle drei Felder ausfuellen.</p>
|
||||
<button type="submit">Speichern</button>
|
||||
<button type="button" class="btn-danger" id="hrc-delete-btn">Loeschen</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@ -340,11 +359,6 @@
|
||||
<div>
|
||||
<label for="skc-username">Benutzername am Zielsystem</label>
|
||||
<input type="text" id="skc-username" maxlength="128" autocomplete="off">
|
||||
<p class="hint">Der Anmeldename, mit dem dieser Schluessel benutzt wird (z.B. root oder l4u). Er gehoert zum Zugang, nicht zum Server -- fuer ein zweites Konto einen zweiten Schluesseleintrag anlegen.</p>
|
||||
</div>
|
||||
<div>
|
||||
<label for="skc-owner">Besitzer (User-ID, optional)</label>
|
||||
<input type="text" id="skc-owner" inputmode="numeric" maxlength="10">
|
||||
</div>
|
||||
<div>
|
||||
<label for="skc-type">Key-Typ</label>
|
||||
@ -359,6 +373,12 @@
|
||||
<label for="skc-tenant">Mandant</label>
|
||||
<select id="skc-tenant" required></select>
|
||||
</div>
|
||||
<div class="full-width">
|
||||
<div class="ft-btn-row">
|
||||
<button type="button" class="btn-secondary btn-small" id="skc-generate-btn">Schluessel automatisch generieren</button>
|
||||
<span class="hint" id="skc-generate-hint">Erzeugt ein neues Schluesselpaar serverseitig und fuellt die beiden Felder unten aus (fuer ca-cert nicht moeglich). Der private Schluessel wird NICHT gespeichert, bevor "Anlegen" gedrueckt wird.</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="full-width">
|
||||
<label for="skc-private">Privater Schluessel (PEM)</label>
|
||||
<textarea id="skc-private" required></textarea>
|
||||
@ -377,7 +397,7 @@
|
||||
<h3>Vorhandene SSH-Keys</h3>
|
||||
<div class="table-wrap">
|
||||
<table class="data-table" id="ssh-keys-table">
|
||||
<thead><tr><th>ID</th><th>Label</th><th>Benutzer</th><th>Typ</th><th>Besitzer</th><th>Mandant</th><th>Passphrase</th><th>Erstellt</th><th>Rotiert</th><th></th></tr></thead>
|
||||
<thead><tr><th>ID</th><th>Label</th><th>Benutzer</th><th>Typ</th><th>Mandant</th><th>Passphrase</th><th>Erstellt</th><th>Zuletzt ersetzt</th><th></th></tr></thead>
|
||||
<tbody></tbody>
|
||||
</table>
|
||||
</div>
|
||||
@ -394,11 +414,7 @@
|
||||
<label for="ske-username">Benutzername am Zielsystem</label>
|
||||
<input type="text" id="ske-username" maxlength="128" autocomplete="off">
|
||||
</div>
|
||||
<div>
|
||||
<label for="ske-owner">Besitzer (User-ID, leer = keiner)</label>
|
||||
<input type="text" id="ske-owner" inputmode="numeric" maxlength="10">
|
||||
</div>
|
||||
<button type="submit">Speichern (Label/Benutzername/Besitzer)</button>
|
||||
<button type="submit">Speichern (Label/Benutzername)</button>
|
||||
</form>
|
||||
<h3>Passphrase</h3>
|
||||
<p class="hint" id="ske-passphrase-state"></p>
|
||||
@ -411,8 +427,8 @@
|
||||
<button type="submit">Passphrase speichern</button>
|
||||
<button type="button" id="skp-clear-btn" class="btn-secondary">Passphrase entfernen</button>
|
||||
</form>
|
||||
<h3>Schluessel rotieren</h3>
|
||||
<p class="hint">Ersetzt das Schluesselmaterial vollstaendig (neuer privater + oeffentlicher Schluessel). Bereits zugeordnete Hosts nutzen danach automatisch den neuen Schluessel.</p>
|
||||
<h3>Neuen Schluessel fuer diesen Eintrag speichern</h3>
|
||||
<p class="hint">Ersetzt das Schluesselmaterial dieses Eintrags vollstaendig (auch "Rotieren" genannt) -- es entsteht KEIN neuer Eintrag, bereits zugeordnete Hosts nutzen danach automatisch den neuen Schluessel.</p>
|
||||
<form id="ssh-key-rotate-form" class="form-grid">
|
||||
<div>
|
||||
<label for="skr-type">Key-Typ</label>
|
||||
@ -435,7 +451,7 @@
|
||||
<label for="skr-passphrase">Passphrase des neuen Schluessels (optional)</label>
|
||||
<input type="password" id="skr-passphrase" maxlength="1024" autocomplete="new-password">
|
||||
</div>
|
||||
<button type="submit" class="btn-secondary">Rotieren</button>
|
||||
<button type="submit" class="btn-secondary">Neuen Schluessel speichern</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
@ -626,7 +642,6 @@
|
||||
<input type="checkbox" id="sessions-active-only" checked>
|
||||
<label for="sessions-active-only">Nur aktive Sitzungen</label>
|
||||
</div>
|
||||
<div id="session-recording-box" class="hidden"></div>
|
||||
<div class="table-wrap">
|
||||
<table class="data-table" id="sessions-table">
|
||||
<thead><tr><th>ID</th><th>Benutzer</th><th>Host</th><th>Protokoll</th><th>Start</th><th>Status</th><th>Client-IP</th><th></th></tr></thead>
|
||||
@ -669,6 +684,32 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ================= Sitzungs-Wiedergabe (Overlay) ================= -->
|
||||
<div class="ft-overlay hidden" id="rec-overlay">
|
||||
<div class="ft-panel rec-panel">
|
||||
<h2 id="rec-title">Wiedergabe
|
||||
<button type="button" class="btn-secondary btn-small" id="rec-close-btn">Schliessen</button>
|
||||
</h2>
|
||||
<div id="rec-verify-banner" class="hidden"></div>
|
||||
<div id="rec-loading" class="hint">Aufzeichnung wird geladen ...</div>
|
||||
<div id="rec-stage" class="rec-stage hidden"></div>
|
||||
<div class="rec-controls hidden" id="rec-controls">
|
||||
<button type="button" class="btn-secondary btn-small" id="rec-playpause-btn">Abspielen</button>
|
||||
<input type="range" id="rec-seek" min="0" max="0" value="0" step="1">
|
||||
<span class="hint" id="rec-time">0:00 / 0:00</span>
|
||||
<select id="rec-speed" class="hidden">
|
||||
<option value="0.5">0.5x</option>
|
||||
<option value="1" selected>1x</option>
|
||||
<option value="2">2x</option>
|
||||
<option value="4">4x</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="/static/js/vendor/xterm.js"></script>
|
||||
<script src="/static/js/vendor/xterm-addon-fit.js"></script>
|
||||
<script src="/static/js/vendor/guacamole-common.js"></script>
|
||||
<script src="/static/js/admin.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@ -10,6 +10,7 @@
|
||||
<div class="session-shell" id="session-shell" data-host-id="{{ host_id }}">
|
||||
<div class="session-toolbar">
|
||||
<button id="fullscreen-btn">Vollbild</button>
|
||||
<button id="ctrlaltdel-btn">Strg+Alt+Entf</button>
|
||||
<span class="spacer"></span>
|
||||
<span class="status" id="status">Verbinde ...</span>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user