로드 키 "ec256.pem": 개인 키에서 공개 키를 생성하려고 하면 잘못된 형식이 발생합니다.

로드 키 "ec256.pem": 개인 키에서 공개 키를 생성하려고 하면 잘못된 형식이 발생합니다.

ECDSA 곡선 secp256k1을 사용하여 공개/개인 키 쌍을 생성하려고 합니다.

ec256.pem(개인 키)에서 공개 키를 생성할 때 다음 오류가 발생합니다.

"로드 키 "ec256.pem": 잘못된 형식"

개인 키를 생성하는 데 사용되는 명령:

openssl ecparam -name secp256k1 -out secp256k1.pem

openssl ecparam -in secp256k1.pem -genkey -noout -out ec256.pem

chmod 400 ec256.pem

공개 키를 생성하는 데 사용되는 명령:

ssh-keygen -y -f  ec256.pem

Below is the error thrown on running the above cmd ,

Load key "ec256.pem": invalid format

사용중인 버전은

OpenSSH_7.4p1, OpenSSL 1.0.2k-fips

ec256.pem 개인 키에 대해 SSH 형식의 공개 키를 생성해야 합니다.

답변1

에서 지원해야 하는 곡선을 살펴보면표준, RFC 5656: "Secure Shell Transport Layer의 타원 곡선 알고리즘 통합"(섹션 10)그런 다음 secp256k1에 대한 지원이 표시되지 않습니다. 물론 구현에서는 여전히 이를 구현할 수 있지만 다른 구현과의 비호환성을 희생해야 합니다.

그래서 개인키를 파싱할 수 없는 단순한 이유는 그 형식이 지원되지 않기 때문이라고 생각합니다. 곡선을 secp256r1(secp256k1 Koblitz 곡선이 아닌 임의의 프라임 곡선, "k" 대신 "r"에 주목)로 바꾸면 모든 것이 동일하거나 더 높은 보안 수준에서 원활하게 실행됩니다. 개인 키의 구조는 secp256k1 곡선과 동일하므로 파일 형식이 아닌 곡선에 문제가 있음을 분명히 알 수 있습니다.

또는 더 멋진 곳으로 갈 수도 있습니다.Ed25519 곡선, 이전 버전과의 호환성과 더 많은 문제가 발생할 가능성이 높습니다. OpenSSL 명령줄과 호환되지 않을 수 있습니다.아래 댓글을 참조하세요.

관련 정보