Linux-SSH-Anmeldung mit Ablauf des Zertifikats

1

Ich habe einen Ubuntu 16.06-Rootserver und habe einige andere Benutzer, die sich möglicherweise als Spezialbenutzer anmelden müssen.

Ich möchte keine Passwörter oder sogar private Schlüssel verschicken.

Ist es möglich, Schlüssel zu generieren, die innerhalb von +3 Tagen nach der Generierung ablaufen, ohne den Server zu berühren?

Dh mit einem Root-Zertifikat, das dem Server bekannt ist und an einem sicheren Ort aufbewahrt wird, mit dem ich diese Schlüssel mit Ablaufdatum generieren kann?

Bam
quelle

Antworten:

6

oder sogar private Schlüssel.

Warum würden Sie jemals private Schlüssel senden? Bitten Sie den Benutzer, ein eigenes Schlüsselpaar zu generieren, und lassen Sie sich den öffentlichen Schlüssel zusenden .

Ist es möglich, Schlüssel zu generieren, die innerhalb von +3 Tagen nach der Generierung ablaufen,

Angenommen, der Server verwendet OpenSSH, gibt es zwei Möglichkeiten:

  • Zertifikate : Unterstützt mit OpenSSH 5.4 oder höher, aber alle Benutzer müssen auch OpenSSH verwenden - die generierten Zertifikate funktionieren nicht mit PuTTY oder anderen Clients.

    Generieren Sie zuerst einen SSH-Schlüssel "Authority" mit ssh-keygenund listen Sie ihn in der Serverkonfiguration auf (verwenden Sie die TrustedUserCAKeysOption), und stellen Sie dann Benutzerzertifikate aus.

    So stellen Sie ein Zertifikat aus: Wenn der Benutzer Ihnen seine id_rsa.pubDatei sendet , signieren Sie sie mit dem CA-Schlüssel. Nach dem Signieren senden Sie die neue id_rsa.pub-certDatei an den Benutzer zurück.

    ssh-keygen -s ~/private/user_ca -I user_fred -n fred -V +3d fred_id_rsa.pub
    

    Hier wird -nfestgelegt, wer sich mit dem Zertifikat anmelden kann, und die Ablaufzeit festgelegt -V. (Die -IOption legt nur einen beliebigen Namen für das Zertifikat selbst fest.)

  • authorized_keys : Unterstützt mit OpenSSH 7.7 oder höher, ohne Clientanforderungen. Die Ablaufinformationen werden nicht im Schlüssel selbst gespeichert, sondern in der Datei authorized_keys des Servers :

    expiry-time="20180704" ssh-ed25519 AAAAC3NzaC1lZDI1NTE...
    

    Ab Handbuchseite sshd (8) sind die zulässigen Zeitformate YYYYMMDDund YYYYMMDDHHMM[SS]in der Hauptzeitzone des Servers.

    Beachten Sie, dass diese Methode nur dann sicher ist, wenn der Benutzer nicht in der Lage ist, seine authorized_keys-Datei zu bearbeiten. Andernfalls kann die Ablaufzeit verlängert werden!

Grawity
quelle