키 쌍 만들기 (SSH·RSA·EC·Ed25519)
개인 키는 비밀번호와 같아요. 저장한 뒤에는 이 창을 닫고, 개인 키 파일은 남과 공유하거나 메신저로 보내지 마세요. 오래 쓸 서버 키라면 내 컴퓨터의 ssh-keygen으로 만드는 것이 가장 좋아요.
저장한 개인 키는 ~/.ssh/에 두고 chmod 600으로 권한을 줄이세요. 암호(passphrase)를 걸려면 ssh-keygen -p -f 파일이름을 실행하세요.
브라우저에서 만드는 SSH·암호 키
공개 키 암호는 개인 키(나만 보관)와 공개 키(남에게 줘도 되는 것) 한 쌍으로 움직여요. SSH 서버 접속, Git 저장소 인증, JWT 서명, 코드 서명 같은 곳에 써요. 이 도구는 브라우저에 들어 있는 암호 기능(Web Crypto API)의 안전한 난수로 키를 만들고, 프로그램마다 필요한 형식으로 바꿔 줘요. 키는 이 기기의 메모리에서만 만들어지고 서버로 전송되거나 저장되지 않아요.
어떤 키를 골라야 하나요
- Ed25519: 지금 SSH의 기본 추천이에요. 키가 짧고 빠르며 안전해요. GitHub·GitLab, 최근 리눅스 서버 모두 지원해요.
- ECDSA P-256/384/521: Ed25519를 못 쓰는 오래된 장비나 JWT(ES256)·인증서에 써요.
- RSA: 호환성이 가장 넓어요. 새로 만든다면 3072비트 이상을 권해요(2048비트는 아직 쓰이지만 최소 기준이에요).
형식 정리
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로 바뀌어요.
함께 쓰면 좋은 도구
- SSL 인증서 해석기 (X.509 인증서·CSR 내용 보기)PEM·CRT·CER·DER 인증서나 CSR을 넣으면 도메인(SAN)·발급자·유효 기간(한국 시간)·키 종류와 길이·지문(SHA-256)·용도를 표로 보여 주고, 체인 연결과 서명까지 확인
- JWT 디코더 (토큰 내용 보기·서명 검증·만들기)JWT 토큰의 헤더·내용(클레임)·만료 시각을 한국 시간으로 보고, HS256·RS256·ES256 서명 검증, HS256 토큰 만들기
- 해시 계산·파일 체크섬 확인 (MD5·SHA-256·SHA-512·CRC32)글자나 파일의 MD5·SHA-1·SHA-256·SHA-512·SHA3·CRC32 값을 한 번에 계산하고, 받은 체크섬과 같은지 비교
- chmod 계산기 (리눅스 파일 권한 755·644 변환)소유자·그룹·기타 사용자의 읽기·쓰기·실행을 체크하면 755 같은 숫자와 rwxr-xr-x 기호, chmod 명령을 바로 만들고, 반대로 숫자·ls -l 표시를 풀이. umask 계산까지
- JSON 정리 (보기 좋게 들여쓰기·검증·압축)JSON을 보기 좋게 들여쓰기, 오류 위치 표시, 한 줄 압축, 키 정렬, 문자열 이스케이프
- 정규식 테스트 (정규표현식 매칭 확인)패턴과 플래그로 일치하는 부분을 강조 표시, 그룹 값 표, 바꾸기 미리보기, 자주 쓰는 패턴