SSH-CA mit ed25519

Datum

Nachdem ich ein Upgrade eines Servers durchgeführt habe musste ich schmerzlich feststellen, dass OpenSSH 8.2 kein rsa mehr unterstützt und deshalb kein Login per ssh möglich war.

Dazu gab es den Logeintrag:
userauth_pubkey: certificate signature algorithm ssh-rsa: signature algorithm not supported

Von daher habe ich mich spontan entschlossen meine SSH-CA Infrastruktur auf ed25519 zu ändern.

Wie man grundsätzlich eine SSH-CA erstellt wurde bereits im Artikel SSH Keys beschrieben und ich zeige hier nur die für ed25519 abgewandelten Befehle.

Erstellung der CA

Zuerst legen wir die Zertifikate der CA, mit welchen die Schlüssel später signiert werden, an:

ssh-keygen -C CA -f ca -o -a 500 -t ed25519

-o legt die Dateien nicht als PEM Format ab, sondern verwendet das OpenSSH Format
-a gibt die Anzahl der KDF (Key Derivation Function) Runden/Durchläufe an für die Verifikation des Passwortes zum entschlüsseln des Zertifikates
-t gibt den Algorithmus an, welcher verwendet werden soll
-f ist der Dateiname
-C ein beliebiger Kommentar

Hierbei sollte ein starkes Passwort eingegeben werden!

Ein Blick in die ca.pub sollte wie folgt aussehen:

$ cat ca.pub 
ssh-ed25519 AAAAC3NzbZwjNNNjjwlqdnwnern211CqZz2hw1b9o6HnCpQzB+Wjrcq1X0opoo CA

Erstellen eine SSH-Keys

Genau auf die gleiche Weise erstellen wir uns auch entsprechende SSH-Keys, welche dann im Anschluss signiert werden.

ssh-keygen -o -a 200 -t ed25519 -f ~/.ssh/id_ed25519 -C "info@techgoat.net"

Signieren der Schlüssel

Das signieren ist weiterhin identisch und da braucht eigentlich nichts weiter beachtet werden.

Beispiel:

$ ssh-keygen -s ca -I rasputin -n root -z 1 /home/rasputin/.ssh/id_ed25519.pub 
Enter passphrase: 
Signed user key /home/rasputin/.ssh/id_ed25519-cert.pub: id "rasputin" serial 1 for root valid forever

Und um das noch einmal zu überprüfen:

$ ssh-keygen -Lf /home/rasputin/.ssh/id_ed25519-cert.pub
/home/rasputin/.ssh/id_ed25519-cert.pub:
        Type: ssh-ed25519-cert-v01@openssh.com user certificate
        Public key: ED25519-CERT SHA256:/Sl4lhvc5eR7dtkb2hgWuk0LNs6GDUoFVHdHXo4dO3I
        Signing CA: ED25519 SHA256:Ej4xt6dOmcfYiArMJ5wTveulvI1FgCgKgw9Jkzb5F4I
        Key ID: "rasputin"
        Serial: 1
        Valid: forever
        Principals: 
                root
        Critical Options: (none)
        Extensions: 

Autor
Kategorien Linux, Troubleshooting

PRTG Map