ssh-keygen — 키 생성과 관리
Linux / 원격 서버 접속 관리 / ssh-keygen.html
💬 "ssh-keygen 명령어"
ssh-keygen은 개인키/공개키 쌍을 만듭니다. 공개키를 서버에 두면 비밀번호 없이 접속합니다.
최근에는 짧고 안전한 ed25519 타입을 권장합니다.
- 개념: 인증용 키 쌍을 생성·조회합니다.
- 개인키:
id_ed25519— 절대 공유하지 않습니다. - 공개키:
id_ed25519.pub— 서버의 authorized_keys에 넣는 값입니다. - 지문: -l -f 로 키 지문을 확인합니다.
자주 쓰는 옵션
| 옵션 | 설명 |
|---|---|
-t ed25519 | 키 타입을 지정합니다(권장) |
-C "설명" | 키에 주석(보통 계정/용도)을 붙입니다 |
-f <경로> | 저장할 키 파일 경로를 지정합니다 |
-l -f <키> | 기존 키의 지문을 확인합니다 |
필수 명령어 조합 3가지
ssh-keygen -t ed25519 -C 'deploy@ci' -f ~/.ssh/deploy_ed25519— 배포용 키 생성ssh-keygen -l -f ~/.ssh/deploy_ed25519.pub— 공개키 지문 확인ssh-copy-id -i ~/.ssh/deploy_ed25519.pub deploy@10.0.0.9— 공개키를 서버에 등록
💬 "배포 직후 점검할 때 쓸 만한 예시 하나 보여줘"
실제 운영 중인 서버에서 자주 만나는 상황을 순서대로 정리했습니다.
1단계 · 키 생성
용도가 드러나는 파일명으로 만듭니다.
ssh-keygen -t ed25519 -C 'deploy@ci' -f ~/.ssh/deploy_ed25519
2단계 · 공개키 등록
대상 서버의 authorized_keys에 넣습니다.
ssh-copy-id -i ~/.ssh/deploy_ed25519.pub deploy@10.0.0.9
3단계 · 접속 검증
비밀번호 없이 접속되는지 확인합니다.
ssh -i ~/.ssh/deploy_ed25519 deploy@10.0.0.9 'echo OK'
실무에서는 이렇게 씁니다
1. CI 배포 키 발급
상황 — CI 파이프라인이 서버에 배포하려면 전용 키가 필요합니다.
ssh-keygen -t ed25519 -C 'ci-deploy' -f ~/.ssh/ci_deploy -N ''
결과 — 암호 없는 키가 생성되어 CI에서 바로 사용할 수 있습니다.
포인트 — CI용 키는 용도를 분리하고, 유출 시 바로 교체할 수 있게 관리합니다.
2. 키 지문 확인
상황 — 서버에 등록된 키가 맞는지 확인해야 합니다.
ssh-keygen -l -f ~/.ssh/id_ed25519.pub
결과 — SHA256 지문이 출력되어 서버의 authorized_keys와 비교할 수 있습니다.
포인트 — 지문 비교는 키 교체/감사에서 기본 절차입니다.
주의할 점
- 개인키는 절대 외부에 공유·커밋하지 않습니다.
- 암호 없는 키는 편하지만 유출 시 위험합니다. CI처럼 격리된 환경에서만 씁니다.
- 키 파일 권한은 600, .ssh 디렉터리는 700이어야 합니다.
- 기존 키를 덮어쓰면 접속이 끊길 수 있어 -f 경로를 신중히 지정합니다.
실제 실행 화면
배포용 ed25519 키를 생성한 결과입니다.

실제 운영 중인 서버
이 문서는 화면 표시용 가상 디렉터리의 항목입니다. 실제 서버 파일시스템과 연결되지 않으며, 파일 실행이나 시스템 명령을 수행하지 않습니다.