홈 › 개발·웹 도구

키 쌍 만들기 (SSH·RSA·EC·Ed25519)

개인 키는 비밀번호와 같아요. 저장한 뒤에는 이 창을 닫고, 개인 키 파일은 남과 공유하거나 메신저로 보내지 마세요. 오래 쓸 서버 키라면 내 컴퓨터의 ssh-keygen으로 만드는 것이 가장 좋아요.

입력한 내용은 서버로 보내지 않고 이 기기에서만 처리돼요
 

브라우저에서 만드는 SSH·암호 키

공개 키 암호는 개인 키(나만 보관)와 공개 키(남에게 줘도 되는 것) 한 쌍으로 움직여요. SSH 서버 접속, Git 저장소 인증, JWT 서명, 코드 서명 같은 곳에 써요. 이 도구는 브라우저에 들어 있는 암호 기능(Web Crypto API)의 안전한 난수로 키를 만들고, 프로그램마다 필요한 형식으로 바꿔 줘요. 키는 이 기기의 메모리에서만 만들어지고 서버로 전송되거나 저장되지 않아요.

어떤 키를 골라야 하나요

형식 정리

OpenSSH 탭의 공개 키 한 줄(ssh-ed25519 AAAA… 설명)을 서버의 ~/.ssh/authorized_keys나 GitHub ‘SSH keys’에 붙여넣고, 개인 키 파일(id_ed25519)은 내 컴퓨터의 ~/.ssh/에 두세요. 개인 키는 암호 없이 저장되니 ssh-keygen -p -f ~/.ssh/id_ed25519로 암호를 거는 게 좋아요. PEM은 OpenSSL·자바·노드 같은 라이브러리용(PKCS#8 개인 키, SPKI 공개 키)이고, JWK는 JWT·OAuth에서 쓰는 JSON 형식이에요(alg와 kid를 넣어 줘요).

만든 OpenSSH 개인 키는 파이썬 cryptography 라이브러리로 다시 읽어 공개 키·지문이 일치하는지, 그 키로 서명한 값이 공개 키로 검증되는지 확인했어요. SHA256 지문은 ssh-keygen -lf 파일로 보는 값과 같은 방식(공개 키 바이트의 SHA-256, Base64)이라 서버에 등록한 키가 맞는지 비교할 때 써요.

참고한 자료

자주 묻는 질문

웹에서 만든 키를 서버에 써도 안전한가요?

키는 브라우저의 암호용 난수로 이 기기 안에서만 만들어지고 전송되지 않아요. 다만 컴퓨터에 악성 확장 프로그램이 있다면 화면의 키를 볼 수 있으니, 중요한 운영 서버 키는 터미널의 ssh-keygen으로 만드는 게 가장 좋아요.

개인 키 파일 권한 오류가 나요.

리눅스·맥에서는 chmod 600 ~/.ssh/id_ed25519로 나만 읽을 수 있게 바꿔야 SSH가 키를 받아 줘요. 윈도우는 파일 속성 → 보안에서 내 계정만 남기세요.

퍼티(PuTTY)용 .ppk도 되나요?

바로 만들지는 않아요. PuTTYgen에서 ‘Load’로 이 개인 키를 불러와 ‘Save private key’를 누르면 .ppk로 바뀌어요.

함께 쓰면 좋은 도구