Wir haben viele Admins, die sich über ihre SSH Schlüssel per root an unsere RHEL Server direkt anmelden wollen. Das root Passwort ist keinem bekannt. Durch geeignete Log Optionen in der sshd_config können finger prints der Schlüssel, die sich anmelden protokolliert werden.

Die Verwaltung der authorized_keys auf so vielen Servern war aber immer etwas mühselig, bis wir auf die Idee gekommen sind, das ganze per RPM verwalten zu lassen. Den öffentlichen Schlüsselteil verpacken wir in ein RPM mit sprechendem Namen und verteilen dieses auf die entsprechenden Systeme.

Das Verfahren hat folgende Vorteile:

  1. Wenn ein Admin einen neuen Schlüssel erzeugt (weil Passphrase vergessen, Schlüssel kompromittiert, …), ist die Verteilung des neuen Schlüssels durch ein neues RPM mit höherer Versionsnummer sehr einfach über die Standard System Update Mechanismen (Satellite usw.) zu realisieren.
  2. Wer direkten Root Zugriff hat ist leicht über die RPM Paketliste zu erkennen.
  3. Scheidet ein Kollege aus, muss nur sein RPM überall deinstalliert werden und schon hat er keinen root Zugriff mehr auf die Systeme.

So funktionierts:

Das Spec File für das ssh rootkey RPM findet ihr hier:   ssh-rootkey-_USERNAME_.spec

Einfach überall _USERNAME_ in einen sprechenden Namen austauschen, z.B. ssh-rootkey-hsimpson.spec und die SSHKEY_-Variablen mit den Schlüsselinformationen bestücken und das Spec file ist fertig.

Ein rpm -bb erzeugt dann das entsprechende RPM. Ab ins System Management Tool, auf die Systeme installiert und schon hat der Admin mit seinem Schlüssel Zugriff auf das System.