Schlüsselbund

Schlüssel erzeugen oder mitbringen, und dann das, was man sonst von Hand macht: einloggen, .ssh anlegen, Rechte setzen, die Zeile anhängen und hoffen, dass sie nicht schon dreimal drinsteht.

Erzeugen

Erzeugt wird ed25519, ohne eigene Passphrase. Der Schlüssel liegt im Tresor und geht nur Ende-zu-Ende-verschlüsselt über den Server. Eine zweite Passphrase würde bei jeder Verbindung abgefragt — oder, realistischer, danebengeschrieben.

Mitgebrachte RSA- und ECDSA-Schlüssel behalten ihre Passphrase.

Auf Hosts eintragen

Für mehrere Hosts nacheinander, mit einem Ergebnis je Host. Wiederholbar: zweimal ausgeführt steht die Zeile einmal da. Und wieder austragen geht genauso.

Der Befehl, der auf dem Host läuft, wird als reine Funktion gebaut und in einer echten sh getestet: zehn Fälle gegen ein echtes Verzeichnis, darunter der Kommentar, in dem ein ; touch … steckt. Er läuft nicht.

Pro Schlüssel abschaltbar

Ein Produktivschlüssel darf auf dem Laptop bleiben, während alles andere synchronisiert wird. Wird so einer gelöscht, entsteht kein Grabstein — er hat das Gerät nie verlassen, und der Grabstein wäre die erste Zeile, die über ihn hinausginge.

Auch bei der Epoch-Rotation gehen gerätelokale Schlüssel nicht mit. Das ist die Stelle, an der ein vergessener Filter sie stillschweigend auf den Server befördern würde.

Der private Teil

Wird nie angezeigt, nie kopiert, nie exportiert. Was auf dem Bildschirm steht, landet früher oder später in einem Screenshot.

Das Dateiformat

Die verwendete SSH-Bibliothek liest Schlüssel, erzeugt aber keine. Der Kodierer für das OpenSSH-Format gehört deshalb zu tessera selbst. Der Gegentest dazu ist keine Formsache: Was tessera schreibt, muss die Bibliothek wieder einlesen — und gegengeprüft wurde es mit dem echten ssh-keygen, das denselben öffentlichen Schlüssel und denselben Fingerabdruck meldet.

Ein Format, das nur die eigene Implementierung liest, fällt sonst erst auf, wenn jemand den Schlüssel woanders braucht.