
현재 OpenSSH 7.8(Fedora 28/Arch)은 설명된 대로 인증서 서명 키를 사용하여 OpenSSH 7.4(CentOS 7) 서버와 협상할 수 없습니다.Redhat의 Bugzilla에 제출된 버그.OpenSSH 릴리스 노트서명 협상 알고리즘의 변경 사항을 이제 명시적으로 정의해야 함을 나타냅니다. 이제 2개의 새로운 서명 알고리즘이 허용되지만(7.7부터), 버그 또는 의도에 의한 것입니다.[이메일 보호됨]사용자 인증서는 더 이상 인증에 사용할 수 없습니다.
재현 단계:
- ssh-keygen -t rsa -b 2048 -f 테스트
- ssh-keygen -s cert.key -I "signedcert" -n testuser test.pub
- ssh -i 테스트 -vvv user@serverip
인증서 서명 프로세스에 사용되는 알고리즘을 수정하여 이 문제를 해결하려고 합니다.
ssh-keygen -L -f test.crt
test.crt:
Type: [email protected] user certificate
Public key: RSA-CERT SHA256:<fingerprint>
Signing CA: RSA SHA256:<fingerprint>
ssh-keygen의 기본값은 키에 서명하는 것입니다.[이메일 보호됨].
OpenSSH 7.8 문서에 따르면 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]
이는 사용 가능한 7가지 키 유형이 있음을 알려주며, ssh-keygen 인증서 서명 프로세스에서 이를 지정하는 방법은 무엇입니까?
참고하세요:
클라이언트 또는 서버에서 다음 구성 변경이 작동하지 않습니다.
PubkeyAcceptedKeyTypes rsa-sha2-256,rsa-sha2-512,[이메일 보호됨],[이메일 보호됨],[이메일 보호됨]
ed25519 형식의 키 서명은 CentOS 6과 같은 openssh 5.3이 설치된 서버와 호환되지 않으므로 해결책으로 간주되지 않습니다.
여기서는 두 가지 해결책이 가능합니다.
- 허용하는 데 적합한 해결 방법을 찾으세요.[이메일 보호됨] 사용자 인증서를 다시 확인하세요.
- ssh-keygen에서 인증서 서명 알고리즘을 변경하는 방법을 찾으세요.
업데이트: (1일 후)
#openssh 사용자에 따르면 인증서 서명 알고리즘은 개인 키에 서명하는 데 사용되는 키에 의해 설정됩니다. 즉, RSA 알고리즘을 RSA:SHA1에서 RSA:SHA2로 변경하는 방법을 알아낼 수 있다면 인증서 서명 알고리즘을 sha2-256으로 강제 설정할 수 있으며 이는 추가 해결 방법을 통해 양쪽에서 모두 가능합니다.
업데이트: (12일 후)
제출된 버그 보고서를 보면 진전이 거의 없었습니다. 내 버그를 살펴보고 올바른 사람들이 이를 보고 있다고 말한 RHEL 직원과 비공식적인 대화를 나눌 수 있었으며 이것이 RHEL에도 영향을 미치기 때문에 RHEL/CentOS 7.6으로 수정될 가능성이 높습니다.
답변1
그만큼링크된 기사다음 접근 방식을 문서화합니다.
ssh-keygen -s cert.key -I "signedcert" -n testuser -t rsa-sha2-256 test.pub
키는 매개 -t rsa-sha2-256
변수입니다.