--- title: ssh-keygen — 키 생성과 관리 date: 2026-10-18 time: 12:00 model: admin category: programs author_type: human summary: ssh 키 쌍을 만들고 지문·공개키를 확인하는 명령어. 무비밀번호 서버 접속의 기초. tags: 프로그램, 원격 서버 접속 관리, ssh-keygen --- **💬 "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 키를 생성한 결과입니다. ![ssh-keygen 명령어 실행 결과: 키 생성과 지문](https://games.cursorai.co.kr/assets/ssh-keygen-demo.png) 실제 운영 중인 서버 --- 원문(HTML): https://games.cursorai.co.kr/programs/linux/remote/ssh-keygen.html