{% extends "tesm_core/base.html" %} {% from "tesm_core/macros.html" import pill, empty_state, alert, search_box %} {% block page_title %}Host-Schluessel{% endblock %} {% block page_sub %} {{ targets | length }} Ziele mit SSH-Zugang {%- if open_count %} · {{ open_count }} ohne Freigabe{% endif %} {% endblock %} {% block topbar_extra %}{{ search_box('hostkey-table', 'Geraet, IP, Fingerprint ...') }}{% endblock %} {% block content %} {% if open_count %} {{ alert('Fuer ' ~ open_count ~ ' Ziel(e) ist noch kein Schluessel freigegeben. Wartung, Konsole und PoE-Neustart brechen dort mit "Schluessel unbekannt" ab -- absichtlich: ein Hintergrundauftrag darf keinen fremden Schluessel annehmen.', 'warning', 'Freigaben offen') }} {% else %} {{ alert('Fuer jedes Ziel mit SSH-Zugang liegt ein freigegebener Schluessel vor.', 'success', 'Vollstaendig') }} {% endif %} {{ alert('Ein Schluessel wird in zwei Schritten uebernommen: erst auslesen, dann -- nach Vergleich mit einer unabhaengigen Quelle -- freigeben. Gespeichert wird nach IP und Port; aendert sich die Adresse eines Geraets, ist erneut freizugeben. Ein *geaenderter* Schluessel wird nie stillschweigend uebernommen: das ist der Fall, der bei einem Angriff auftritt.', 'info', 'So funktioniert die Freigabe') }} {% if probed_fingerprint %}
{{ icon('alert', size=18) }}
Gelesener Schluessel von {{ probed_host }}:{{ probed_port }}
{{ probed_type }} {{ probed_fingerprint }}

Vergleichen Sie den Fingerprint mit einer unabhaengigen Quelle -- Konsolenzugang am Geraet, Inventardokumentation --, bevor Sie ihn unten freigeben.

{% endif %}
{{ icon('shield', size=17) }} Ziele
Ohne Freigabe zuerst
{% for row in targets %} {% set may_edit = current_user.has(edit_right[row.kind]) %} {% endfor %}
Ziel Art Adresse Zustand Fingerprint
{{ row.label }} {% if row.kind == 'switch' %}{{ pill('Switch', 'info') }} {% else %}{{ pill('Client', '') }}{% endif %} {{ row.host }}:{{ row.port }} {% if row.trusted %}{{ pill('freigegeben', 'online') }} {% else %}{{ pill('offen', 'danger') }}{% endif %} {% for key in row.host_keys %}
{{ key.key_type }} {{ key.fingerprint }}
{% else %} {% endfor %}
{% if may_edit %}
{% if probed_fingerprint and probed_host == row.host and probed_port == row.port | string %}
{% endif %} {% if row.trusted %}
{% endif %}
{% else %} keine Berechtigung {% endif %}
{% if not targets %} {{ empty_state('Keine Ziele', 'Legen Sie zuerst Clients oder Switche an.', 'shield') }} {% endif %}
{% if orphans %}
{{ icon('alert', size=17) }} Verwaiste Freigaben
Zu diesen Eintraegen gibt es kein Ziel mehr -- geloescht oder mit neuer IP.
{% for row in orphans %} {% endfor %}
AdresseTypFingerprintFreigegeben
{{ row.host }}:{{ row.port }} {{ row.key_type }} {{ row.fingerprint }} {{ row.added_at | dt }} von {{ row.added_by }} {% if current_user.has('devices.edit') or current_user.has('switches.edit') %}
{% endif %}
{% endif %} {% endblock %}