Kennt ihr schon das relativ neue Feature von ssh - die Certifikate und Principals?
Leider findet man dazu relativ wenig im Netz. Ein paar gute Seite hab ich schon gefunden
https://ef.gy/hardening-ssh
https://framkant.org/2017/07/scalable-a ... tificates/
https://access.redhat.com/documentation ... entication Die hier verwendete Version von ssh-keygen verwendet die Option -Z statt -n wie bei Debian und Fedora um die Principals im Zertifikat festzulegen.
Auf Basis dieser 3 Seiten hab ich mich in das Thema einmal eingearbeitet. Und ich muss sagen, dass klappt ziemlich gut. Ich hab mir ein paar Ansible-Rollen gebaut, um die Hostkeys und auch die Userkeys von ein paar Standardusern auf meinen Servern zu erneuern und zu zertifizieren.
Jetzt bin ich allerdings mit git und gitosis auf ein Problem gestoßen. Gitosis https://github.com/tv42/gitosis arbeitet mit normalen Pubkeys um die Zugriffe auf die Repos eines selbst gehosteten Git-Repos zu organisieren. Man verwaltet die Zugriffe über ein separates Repo und die Konfig darin. Funktioniert ziemlich gut.
Allerdings mit Zertifikaten und Principals geht das nicht. Deshalb hab ich Gitosis aufgebohrt und um Principals erweitert: https://github.com/xundeenergie/gitosis. Damit kann man auch Principals mit Zertifikaten parallel dazu verwenden.
Allerdings gibt es eine Einschänkung an der ich gerade scheitere...
In der sshd_config kann ich entweder
Code: Alles auswählen
AuthorizedPrincipalsFile /etc/ssh/userprincipals/%u
Code: Alles auswählen
AuthorizedPrincipalsCommand /usr/local/bin/gitosis-authorized-principals %i
Ich hab das auf meinem Git-Server momentan so (nicht funktionierenderweise) implementiert
Code: Alles auswählen
...
...
...
Match User git
AuthorizedPrincipalsCommandUser git
AuthorizedPrincipalsCommand /usr/local/bin/gitosis-authorized-principals %i
Match Host *
TrustedUserCAKeys /etc/ssh/trusted_usercas
AuthorizedPrincipalsFile /etc/ssh/userprincipals/%u
EOF
Selbst wenn das File /etc/ssh/userprincipals/%u leer ist, hab ich keine Zugriffe auf das Git-Repo.
Erst wenn ich AuthorizedPrincipalsFile auskommentiere, kann ich meine git-Repos erreichen. Aber dann kann ich die Principals nicht mehr für den normalen ssh-Zugriff verwenden...
Verschiebe ich AuthorizedPrincipalsFile nach oben, vor die Match-Sections klappt es auch nicht.
Wie müsste ich die sshd_config für den Git-Server gestalten, dass wirklich nur für den User git die AuthorizedPrincipalsCommand ziehen, und für alle anderen User von allen anderen Hosts die AuthorizedPrincipalsFile...
Ich steh grad ein bisserl an...
lg scientific