Ändern Sie den Standardalgorithmus für die Zertifikatsignatur in ssh-keygen

Ändern Sie den Standardalgorithmus für die Zertifikatsignatur in ssh-keygen

Derzeit kann OpenSSH 7.8 (Fedora 28/Arch) nicht mit einem OpenSSH 7.4 (CentOS 7)-Server verhandeln, der einen zertifikatssignierten Schlüssel verwendet, wie beschriebenin einem Fehler, der in Redhats Bugzilla gemeldet wurde.OpenSSH-Versionshinweisedeuten auf eine Änderung des Signaturverhandlungsalgorithmus hin, der nun explizit definiert werden muss. Obwohl nun (seit 7.7) zwei neue Signaturalgorithmen erlaubt sind, kann dies ein Fehler oder Absicht sein.[email geschützt]Benutzerzertifikate können nicht mehr zur Authentifizierung verwendet werden.

Schritte zum Reproduzieren:

  1. ssh-keygen -t rsa -b 2048 -f test
  2. ssh-keygen -s cert.key -I "signedcert" -n Testbenutzer test.pub
  3. ssh -i test -vvv Benutzer@Server-IP

Ich versuche, dieses Problem zu umgehen, indem ich den im Zertifikatsignierprozess verwendeten Algorithmus ändere.

ssh-keygen -L -f test.crt
test.crt:
    Type: [email protected] user certificate
    Public key: RSA-CERT SHA256:<fingerprint>
    Signing CA: RSA SHA256:<fingerprint>

Die Standardeinstellung für ssh-keygen ist, den Schlüssel zu signieren in[email geschützt].

Laut OpenSSH 7.8-Dokument, PROTOCOL.certkeys.

All certificate types include certification information along with the
public key that is used to sign challenges. In OpenSSH, ssh-keygen
performs the CA signing operation.

Certified keys are represented using new key types:

    [email protected]
    [email protected]
    [email protected]
    [email protected]
    [email protected]

Two additional types exist for RSA certificates to force use of
SHA-2 signatures (SHA-256 and SHA-512 respectively):

    [email protected]
    [email protected]

Daraus erkenne ich, dass 7 Schlüsseltypen verfügbar sind. Wie gebe ich einen davon im Zertifikatsignierprozess „ssh-keygen“ an?

Bitte beachten Sie:

  • Folgende Konfigurationsänderung auf Client oder Server funktioniert bei mir nicht.

    PubkeyAcceptedKeyTypes rsa-sha2-256,rsa-sha2-512,[email geschützt],[email geschützt],[email geschützt]

  • Das Signieren des Schlüssels im ed25519-Format ist nicht abwärtskompatibel zu Servern mit OpenSSH 5.3, wie beispielsweise CentOS 6, und wird daher nicht als Lösung betrachtet.

Hier sind zwei Lösungen möglich.

  1. Finden Sie eine geeignete Problemumgehung, um[email geschützt] Benutzerzertifikate erneut.
  2. Finden Sie eine Möglichkeit, den Zertifikatsignaturalgorithmus in ssh-keygen zu ändern.

Update: ( 1 Tag später )

Laut einem Benutzer auf #openssh wird ein Zertifikatsignaturalgorithmus durch den Schlüssel festgelegt, mit dem der private Schlüssel signiert wird. Das heißt, wenn ich herausfinden kann, wie ich den RSA-Algorithmus von RSA:SHA1 in RSA:SHA2 ändern kann, kann ich möglicherweise den Zertifikatsignaturalgorithmus auf sha2-256 zwingen, was mit einem zusätzlichen Workaround auf beiden Seiten möglich ist.

Update: ( 12 Tage später )

Beim Betrachten des eingereichten Fehlerberichts wurde kaum Fortschritt festgestellt … oder zumindest schien es so. Ich konnte ein informelles Gespräch mit einem RHEL-Mitarbeiter führen, der sich meinen Fehler ansah und sagte, dass die richtigen Leute sich darum kümmern und da dies auch RHEL betrifft, wird es wahrscheinlich eine Lösung mit RHEL/CentOS 7.6 geben

Antwort1

Derverlinkter Artikeldokumentiert den folgenden Ansatz:

ssh-keygen -s cert.key -I "signedcert" -n testuser  -t rsa-sha2-256 test.pub

Der Schlüssel ist der -t rsa-sha2-256Parameter.

verwandte Informationen