Wie verwalten Sie SSH-Schlüssel?

15

Ich habe einen Server mit mehreren Benutzern, die jeweils mehrere autorisierte SSH-Schlüssel haben. Gibt es eine effektive Möglichkeit (Befehlszeilendienstprogramm?), Um festzustellen, welcher Schlüssel wem gehört, und um Schlüssel schnell zu entfernen / hinzuzufügen (abgesehen von ssh-copy-id)?

Olivier Lalonde
quelle
1
Shell-Skripte können einfach die Anmeldezeiten aus Protokollen verfolgen und die Dateien in .ssh bearbeiten ... Ich weiß, dass Sie nicht danach suchen, also ist es ein Kommentar, keine Antwort
RobotHumans
1
Verwenden Sie den letzten Teil jeder Zeile in .ssh/authorized_keysfür Kommentare (von man sshd: "Öffentliche Schlüssel des Protokolls 1 bestehen aus den folgenden durch Leerzeichen getrennten Feldern: Optionen, Bits, Exponent, Modul, Kommentar. Öffentliche Schlüssel des Protokolls 2 bestehen aus: Optionen, Schlüsseltyp, base64-codierter Schlüssel, Kommentar. "). Und um die Frage zu beantworten, benutze ich vimdoch jeden Editor der das machen sollte.
Shellholic
Wenn jeder Benutzer über ein separates Benutzerkonto verfügt, ist dies natürlich kein Problem, solange sich alle Einträge im Home-Ordner aller Benutzer befinden (oder tatsächlich in .ssh / authorized_keys, aber trotzdem).
Olli
@shellholic, du hast eine gute Antwort.
Veröffentlichen
@djeikyb ok, fertig, aber ich sollte ein bisschen
fertig sein

Antworten:

3

Sie können den letzten Teil jeder Zeile in .ssh/authorized_keysfür Kommentare verwenden. Von man sshd:

Öffentliche Schlüssel für Protokoll 1 bestehen aus den folgenden durch Leerzeichen getrennten Feldern: Optionen, Bits, Exponent, Modul, Kommentar. Der öffentliche Schlüssel von Protokoll 2 besteht aus: Optionen, Schlüsseltyp, Base64-codiertem Schlüssel, Kommentar.

Und um die Frage zu beantworten, benutze ich vimdoch jeden Editor der das machen sollte.

Meine Kommentare enthalten normalerweise:

  • Erstellungsdatum
  • physischer Standort: Erstellungscomputer / USB-Stick
  • 1-2 Wörter über den Zweck (für welches Login, für welchen Client, für welches Skript)
Shellholic
quelle
3

Ich würde das Monkeysphere- Projekt auschecken . Es verwendet die Web-of-Trust-Konzepte von OpenPGP, um die authorized_keys und known_hosts-Dateien von ssh zu verwalten, ohne dass Änderungen am ssh-Client oder -Server erforderlich sind.

Da1T
quelle