본문 바로가기
프로그래밍

SSH 키 생성을 위한 두 가지 방법 PuTTYgen vs OpenSSH

by bantomak 2025. 1. 17.
반응형

PuTTYgen vs OpenSSH

보통 SSH 키를 생성하는 방법에는 PuTTYgen을 사용하거나 OpenSSH를 사용하는 방법이 있다. 생성한 키는 본질적으로 동일한 알고리즘(예: RSA, Ed25519, ECDSA 등)을 기반으로 생성되므로 암호학적 속성은 동일하다. 그러나 키의 형식과 표현 방식에서 차이가 있다. 하지만 걱정하지 말자 두 결과물 간에 호환이 가능하기 때문에 어느 쪽으로 만들던지 상관은 없다.

파일 형식

  • PuTTYgen 키 형식
    • PuTTYgen은 기본적으로 PPK(PuTTY Private Key) 형식을 사용한다.
    • PPK는 PuTTY 및 관련 도구에서 사용하기 위해 설계된 독자적인 바이너리 형식이다.
    • 개인 키와 공개 키 정보를 함께 저장하며, OpenSSH에서 바로 사용할 수 없다.
  • OpenSSH 키 형식
    • OpenSSH는 텍스트 기반 형식으로 키를 저장한다.
    • 개인 키는 PEN(Private Enhanced Mail) 형식 또는 OpenSSH 고유의 형식으로 저장되며, 공개 키는 OpenSSH 형식으로 저장된다.
    • OpenSSH 키는 대부분의 SSH 클라이언트 및 서버에서 바로 사용할 수 있다.

확장자

  • PuTTYgen
    • 개인 키: .ppk (PuTTY 전용)
    • 공개 키: .pub 형식으로 내보낼 수 있음.
  • OpenSSH
    • 개인 키: 확장자 없음 (예: id_rsa)
    • 공개 키: .pub (예: id_rsa.pub)

변환하는 방법

  • PuTTYgen에서 OpenSSH로 변환
    • PuTTYgen에서 키를 생성한 후, Conversions -> Export OpenSSH Key를 선택하여 OpenSSH 호환 키로 변환
    • 공개 키는 텍스트 형식으로 내보내어 OpenSSH와 호한이 가능하다.

  • OpenSSH에서 PuTTYgen으로 변환
    • OpenSSH로 생성한 .PEM 키를 PuTTYgen에서 불러온 후에 .ppk 형식으로 저장한다.
 

EC2 생성시 발급받은 키 페어 .pem을 .ppk로 변경해보자

EC2 생성 시에. pem으로 발급받아 버린 키 페어.ppk로 받을 수 있는 옵션이 있다는 걸 이땐 알지 못했다. EC2 접속을 위해서 EC2 인스턴스 창에서도 접속이 가능하지만 PuTTY가 익숙해져버린 사람들에

jettstream.tistory.com

키 형식 예제

  • PuTTYgen 키 형식 (PPK)
PuTTY-User-Key-File-2: ssh-rsa
Encryption: none
Comment: my-key
Public-Lines: 4
AAAAB3NzaC1yc2EAAAABIwAAAQEArkl45mv5...
Private-Lines: 8
AAABBBCCDDEE...
Private-MAC: f2db7a9ef1e2...
  • OpenSSH 키 형식

개인 키(private key)

-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAA...
-----END OPENSSH PRIVATE KEY-----

공개 키(public key)

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEArkl45mv5... user@host

정리하자면

함께 읽으면 좋은 글

 

HTTPS 통신을 위한 자체 인증 SSL 인증서 만들기

전반적인 과정OpenSSL 다운로드Private Key 생성인증서 요청(CSR) 파일 생성(private.csr)자체 서명하기 위해서 rootCA 생성자체 서명한 인증서 생성(private.crt)pem 확장자로 변환NGINX config 파일에서 해당 파일

jettstream.tistory.com

댓글