
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:
- ssh-keygen -t rsa -b 2048 -f test
- ssh-keygen -s cert.key -I "signedcert" -n Testbenutzer test.pub
- 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.
- Finden Sie eine geeignete Problemumgehung, um[email geschützt] Benutzerzertifikate erneut.
- 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-256
Parameter.