Benutzer-Werkzeuge

Webseiten-Werkzeuge


howtos:sshprincipals

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
howtos:sshprincipals [2023/07/21 12:49] – [Vorbereitung des SSH Servers] morquaihowtos:sshprincipals [2023/07/26 10:11] (aktuell) – [Die Idee] morquai
Zeile 3: Zeile 3:
 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 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 ===== ===== Die Idee =====
-Im How-to [[.:howtos:sshexpert|SSH - für Fortgeschrittene]] haben wir den Public Key mit folgendem Befehl signiert:\\+Im How-to [[.:sshexpert|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   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.\\ Mit "-n" haben wir festgelegt, dass die Signatur für die Benutzer unixuser1 und unixuser2 auf dem Server Gültigkeit besitzt.\\
Zeile 79: Zeile 79:
 Damit diese Einstellungen wirksam werden, muss der SSH Server neu gestartet werden. Die angegebenen Dateien und Benutzer müssen existieren.\\ \\ Damit diese Einstellungen wirksam werden, muss der SSH Server neu gestartet werden. Die angegebenen Dateien und Benutzer müssen existieren.\\ \\
  
-Sehen wir uns nun ein Beispiel an. Wir haben zwei Development Teams, dev1 und dev2. Beide Teams sollen Zugriff auf den User mysql erhalten und dev1 zusätzlich zum User app1, während dev2 den User app2 benötigtWeiterhin benötigen wir in der Liste alle Developer selbst, ihre Benutzernamen lauten user1, user2, user3 und user4. Die Konfigurationsdatei /etc/ssh/AuthorizedPrincipalsFile sieht dann folgendermaßen aus: +Sehen wir uns nun ein Beispiel an. Wir haben zwei Development Teams, dev1 und dev2. \\ 
-  +Beide Teams sollen Zugriff  
 +|auf den User mysql  |\\   
 +|dev1 zusätzlich zum User app1  |\\ 
 +|dev2 zusätzlich zum User app2  |\\ 
 +|das DBA Team benötigt ebenfalls Zugriff auf den User mysql  |\\ 
 +|Weiterhin benötigen wir in der Liste alle Developer selbst, ihre Benutzernamen lauten user1, user2, user3 und user4.|\\ 
 +Die Konfigurationsdatei /etc/ssh/AuthorizedPrincipalsFile sieht dann folgendermaßen aus:\\ 
 +  # user          principals (comma separated) 
 +  #                  duplicate user entries will be combined, 
 +  #                  duplicate principals will be used only once 
 +  #                  user name will be added as separate principal 
 +  #--------------!------------------- 
 +    app1          dev1 
 +    app2          dev2 
 +    mysql         dev1,dev2 
 +    mysql         dba 
 +    user1 
 +    user2 
 +    user3 
 +    user4 
 +Testen wir nun das Skript\\ 
 +  sudo -u principals /etc/ssh/AuthorizedPrincipalsCommand.sh /etc/ssh/AuthorizedPrincipalsFile mysql 
 +    dba 
 +    dev1 
 +    dev2 
 +    mysql 
 +  sudo -i principals /etc/ssh/AuthorizedPrincipalsCommand.sh /etc/ssh/AuthorizedPrincipalsFile app1 
 +    app1 
 +    dev1 
 +  sudo -i principals /etc/ssh/AuthorizedPrincipalsCommand.sh /etc/ssh/AuthorizedPrincipalsFile app2 
 +    app2 
 +    dev2 
 +  sudo -i principals /etc/ssh/AuthorizedPrincipalsCommand.sh /etc/ssh/AuthorizedPrincipalsFile user3 
 +    user3 
 +Voila, eine Konfigurationsdatei löst das Problem erneut signieren zu müssen, falls Teams Zugriff auf weitere Benutzer benötigen. Nehmen wir an, "user3" gehört zu, Team "dev2". Der Public Key ist dann folgendermaßen zu signieren um ihm Zugriff auf die User mysql,app2 und user3 zu erteilen: 
 +  ssh-keygen -s id_rsa_userca -I "vorname.machname@example.com" -n "user3,dev2" -V +2w -z 1 id_rsa.pub 
 + 
  
  
howtos/sshprincipals.1689943740.txt.gz · Zuletzt geändert: 2023/07/21 12:49 von morquai