Benutzer-Werkzeuge

Webseiten-Werkzeuge


howtos:sshprincipals
Übersetzungen dieser Seite:

Dies ist eine alte Version des Dokuments!


SSH - PKI und Principals

Sicherheit kostet immer Ressourcen, seinen es Aufwände oder Kosten. Darüber hinaus werden Sicherheitsmaßnahmen nur dann wirklich akzeptiert, wenn sie ohne großen Aufwand, gerade in der täglichen Arbeit, umgesetzt werden.
Die Verteilung von Public Keys auf die entsprechenden Server oder die Notwendigkeit der erneuten Signatur wenn sich an der Liste der erlaubten User etwas ändert, stellen Hindernisse dar, die beim Benutzer Unmut auslösen können. Wie hier Abhilfe geschaffen wird, zeige ich Ihnen im Folgenden.

Die Idee

Im How-to SSH - für Fortgeschrittene haben wir den Public Key mit folgendem Befehl signiert:

ssh-keygen -s id_rsa_userca -I "vorname.machname@example.com" -n "unixuser1,unixuser2" -V +2w -z 1 id_rsa.pub

Mit „-n“ haben wir festgelegt, dass die Signatur für die Benutzer unixuser1 und unixuser2 auf dem Server Gültigkeit besitzt.
Kommt nur ein Benutzer hinzu, den der Anwender benötigt, muss der Key neu signiert werden. Gerade in Development Teams führt dies zu unnötigem Aufwand, denn es ist ja nicht nur ein Key neu zu signieren sondern die Keys aller Mitglieder eines Teams benötigen eine neue Signatur.
OpenSSH bietet die Möglichkeit verschiedene Benutzer auf dem Server zu Grupoen (sogenannte Principals) zusammenzufassen. Ordnet man der Devlopern also nicht eine Liste von Benutzern zu, sondern einen (oder mehrere) Principals (Gruppen), braucht man nur auf dem SSH Server die Definition dieser Gruppe anzupassen und die erneutet Signatur aller Keys, deren Zugriff geändert wird, entfällt.

Die Umsetzung

Die erforderlichen Änderungen, Principals nicht mehr als Benutzernamen sondern als Gruppe aufzufassen, erfolgt nur auf dem SSH-Server.
Betrachten wir die Möglichkeiten, die zur Verfügung stehen. In einer Konfigurationsdatei wird hinterlegt, welche Principals die Berechtigung haben, sich als ein bestimmter Benutzer anzumelden. Enthält die Signatur einen der erforderlichen Principals, ist eine Anmeldung erlaubt.
Beachten Sie: Diese Möglichkeiten bieten sich nur, wenn signierte Public Keys zum Einsatz kommen
Die angesprochene Konfigurationsdatei besteht aus einer Zeile für jeden Benutzer des Servers, auf den mit signierten Keys zugegriffen werden soll.
Jede Zeile besteht aus zwei Spalten, die erste enthält den Benutzernamen, die Zweite eine (durch Kommata separierte) Liste der berechtigten Principals. Hier ein Beispiel für den Zugriff auf den User „mysql“ für die Principals „dba“ und „developer“:

mysql  dba,developer
howtos/sshprincipals.1689935538.txt.gz · Zuletzt geändert: 2023/07/21 10:32 von morquai