ssh-keygen에서 생성 한 id_rsa.pub 키가 있습니다. id_rsa.pub 파일을 RSA DER 형식의 키로 프로그래밍 방식으로 변환하는 방법은 무엇입니까?RSA 공개 키를 RSA DER로 변환
답변
당신은 키 생성하기 SSH-Keygen은을 사용하는 경우 :
$ ssh-keygen
그런 다음 당신은 그냥이 같은 DER 형식으로 공개 키를 꺼내 쓸 수있는 OpenSSL을 사용할 수 있습니다
$ openssl rsa -in id_rsa -out pub.der -outform DER -pubout
writing RSA key
을
이 같은 PEM으로 DER 출력을 볼 수 있습니다
$ openssl rsa -in pub.der -inform DER -pubin -text
나는 그래서 그것을 사용하는 것이 얼마나 쉬운 지 모르는, 루비를 사용하지 않는 Ruby의 OpenSSL.
편집 : 나는 너무 빨리 대답했다 - 당신은 id_rsa.pub를 썼고 당신은 id_rsa 자체를 가지고 있지 않을지도 모른다. 또 다른 스택 오버플로 문제는 역 변환에 대한 것이지만 거기에있는 소스 코드는 도움이 될 수 있습니다. Convert pem key to ssh-rsa format PEM을 사용하면 openssl을 사용하여 PEM을 DER로 변환 할 수 있습니다.
편집 : 2014 년 5 월 : Ruby가 내가 가장 좋아하는 프로그래밍 언어가되었으며 원래 질문 (편집 된 이후)에서 Ruby에 대해 질문했습니다. 당신은 쉘에서 다음하려면 openssl 명령으로 출력을 확인할 수 있습니다
require 'openssl'
require 'base64'
def read_length(s)
# four bytes, big-endian
length = s[0..3].unpack('N')[0]
end
def read_integer(s, length)
# shift all bytes into one integer
s[4..3 + length].unpack('C*').inject { |n, b| (n << 8) + b }
end
def cut(s, length)
s[4 + length..-1]
end
def decode_pub(pub)
# the second field is the Base64 piece needed
s = Base64.decode64(pub.split[1])
# first field reading "ssh-rsa" is ignored
i = read_length(s)
s = cut(s, i)
# public exponent e
i = read_length(s)
e = read_integer(s, i)
s = cut(s, i)
# modulus n
i = read_length(s)
n = read_integer(s, i)
[ e, n ]
end
def make_asn1(e, n)
# Simple RSA public key in ASN.1
e0 = OpenSSL::ASN1::Integer.new(e)
n1 = OpenSSL::ASN1::Integer.new(n)
OpenSSL::ASN1::Sequence.new([ e0, n1 ])
end
pub = File.read('id_rsa.pub')
asn1 = make_asn1(*decode_pub(pub))
# Let OpenSSL deal with converting from the simple ASN.1
key = OpenSSL::PKey::RSA.new(asn1.to_der)
# Write out the public key in both PEM and DER formats
File.open('id_rsa.pem', 'w') { |f| f.write key.to_pem }
File.open('id_rsa.der', 'w') { |f| f.write key.to_der }
:
$ openssl rsa -pubin -text -in id_rsa.pem
$ openssl rsa -pubin -text -inform DER -in id_rsa.der
여기에 id_rsa.pub (공개 키)를 읽어와 OpenSSL을 생성, DER 형식의 공개 키를 작성하는 코드는
만 SSH-Keygen은에 의해 생성 된 공개 키에 액세스 할 수 있습니다, 그것은 형식, 다음 작품을 DER로 변환 할 경우
ssh-keygen -f id_rsa.pub -e -m PKCS8 | openssl pkey -pubin -outform DER
티 먼저 ssh-keygen
을 사용하여 키를 PKCS8 PEM 형식으로 변환 한 다음 openssl pkey
을 사용하여 DER 형식으로 변환합니다.
(이는 Jim Flood의 대답과 동일하지만 개인 키 파일을 건드리지 않고 수행합니다.)
그는 "어떻게 id_rsa.pub 파일을 프로그래밍 방식으로 RSA DER 형식의 키로 변환 할 수 있습니까?" 그는 명령 할 것을 요구하지 않았습니다. – jww
플러스, 모든 배포판에서 작동하지 않습니다. –
- 1. 문자열 공개 키를 RSA 공개 키로 변환
- 2. ASN.1 DER로 인코딩 된 RSA 공개 키 읽기
- 3. RSA 공개 키를 RSA 모듈에서 PEM 형식으로 만들려면 어떻게해야합니까?
- 4. M2Crypto를 사용하여 DER로 인코딩 된 RSA 키로드
- 5. Bouncy Castle, RSA : 키를 String 형식으로 변환
- 6. RSA 비공개 키를 테스트하는 방법
- 7. RSA 공개 키를 사용하여 java.util.Properties 객체를 암호화하려면 어떻게해야합니까?
- 8. 기계 수준 RSA 키 컨테이너에 공개 키를 저장하는 방법
- 9. .NET에서 생성 한 공개 키를 사용하는 iPhone의 RSA 암호화?
- 10. RSA 공개 키 알고리즘을 사용하여 서명
- 11. 안드로이드에 RSA 키 쌍 저장
- 12. RSA 공개 키, javaME, bouncy castle을 전송하는 중 문제가 발생했습니다.
- 13. 계수와 공개 지수를 사용하는 C# RSA 암호화
- 14. RSA Android Encrypt/RSA PHP 암호 해독
- 15. XML RSA 키를 PEM 파일로 변환하려면 어떻게해야합니까?
- 16. RSA 암호
- 17. 안드로이드 폴더에 RSA 공개 키 저장
- 18. PHP RSA PublicKey를 Android로 변환 PublicKey
- 19. RSA 암호화 - 암호 해독
- 20. RSA Cryptography javascript
- 21. RSA Cryptography in C#
- 22. PRIVATEKEYBLOB를 OpenSSL의 RSA 구조체
- 23. RSA decrypt with Java
- 24. RSA 암호화 : Java to PHP
- 25. Python RSA 라이브러리?
- 26. iPhone에서의 RSA 암호화
- 27. RSA 키 저장소 권한
- 28. C# 공개 RSA-1280 16 진수 키로 문자열 암호화
- 29. asp.net 키 저장소없이 RSA 공개 키 쌍 생성
- 30. Java에서 RSA 비공개 키로 암호화
좋은 해결책, 고마워요! –