Linux / 명령어 / ssh-keygen - SSH 키 쌍 생성과 지문 확인

ssh-keygen은 SSH 인증에 사용하는 개인키와 공개키 쌍을 만들고 지문을 확인합니다. 개인키는 자신의 컴퓨터에 안전하게 보관하고 공개키만 서버에 등록합니다.

ssh-keygen 명령어란?

공개키 인증에서 개인키는 서명에 사용되고 서버는 등록된 공개키로 이를 검증합니다. id_ed25519와 id_ed25519.pub처럼 공개키에는 보통 .pub가 붙습니다. 키 지문은 키 내용을 짧게 식별하는 값이며, 생성 시 암호문구(passphrase)를 설정하면 개인키 파일 유출에 대한 방어층이 됩니다.

기본 문법

ssh-keygen [옵션]

설치된 구현과 옵션은 배포판에 따라 다를 수 있습니다. man ssh-keygen으로 현재 시스템의 설명을 확인하세요.

사용 예제

Ed25519 키 쌍 만들기

기존 키를 덮어쓰지 않도록 새 파일명을 지정하고 암호문구를 설정합니다.

ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_work -C 'user@example.com'

공개키 지문 확인

서버에 등록할 키가 의도한 키인지 비교합니다.

ssh-keygen -lf ~/.ssh/id_ed25519_work.pub

개인키에서 공개키 재생성

공개키 파일을 잃어버렸을 때 개인키를 외부에 노출하지 않고 공개키를 출력합니다.

ssh-keygen -y -f ~/.ssh/id_ed25519_work

생성한 키의 지문 확인하기

키를 만든 뒤에는 공개키 파일의 지문을 조회해 서버에 등록하려는 키가 맞는지 확인할 수 있습니다. 실제 지문은 키마다 고유합니다.

ssh-keygen -lf ~/.ssh/id_ed25519_work.pub

출력 형식 예시(지문은 생략한 설명용 값):

256 SHA256:... user@example.com (ED25519)

앞의 256은 키 크기, 괄호 안은 키 유형입니다. 기존 파일 경로에 새 키를 만들면 이전 개인키가 덮어써질 수 있고, 그 키를 쓰던 서버에 접속하지 못할 수 있습니다. 공개키만 서버에 배포하며 개인키는 이메일·메신저·웹 폼에 업로드하지 마세요.

주요 옵션과 형식

옵션·형식 설명
-t 유형 ed25519 등 생성할 키 유형을 지정합니다.
-f 파일 키를 저장하거나 읽을 파일을 지정합니다.
-C 주석 공개키에 식별용 주석을 붙입니다.
-l 키 파일의 지문을 표시합니다.
-y 개인키에서 공개키를 출력합니다.
-p 기존 개인키의 암호문구를 변경합니다.

사용할 때 주의할 점

기존 키 경로를 재사용하면 예전 공개키로 접속하던 서버에 로그인하지 못할 수 있습니다. 생성 전 해당 파일이 있는지 확인하고 덮어쓰기 경고를 읽으세요. 개인키는 이메일·메신저·웹 페이지에 올리지 말고 권한과 백업을 관리합니다. 암호문구를 잃으면 보통 키를 복구할 수 없으므로 새 키 쌍을 발급하고 서버의 공개키를 교체해야 합니다.

자주 묻는 질문

서버에 어떤 파일을 복사해야 하나요?

확장자가 .pub인 공개키만 등록합니다. 확장자 없는 개인키는 로컬에 보관해야 합니다.

공식 문서

옵션의 정확한 동작과 구현별 차이는 ssh-keygen 관련 공식 문서에서 확인할 수 있습니다.

같은 카테고리의 다른 글
Linux / 명령어 / head - 파일 앞부분의 줄과 바이트 출력

Linux / 명령어 / head - 파일 앞부분의 줄과 바이트 출력

Linux head 명령어로 파일의 처음 몇 줄이나 바이트를 출력하는 방법을 설명합니다. 여러 파일, 음수 개수, 파이프 활용과 바이너리 데이터 주의점도 정리합니다.

Linux / 디스크 관리 / 파티션, 포맷, 마운트

Linux / 디스크 관리 / 파티션, 포맷, 마운트

Linux에서 디스크를 관리할 때 필요한 파티션 생성, 파일 시스템 포맷, 마운트 방법을 정리했습니다.

Linux / 명령어 / printf - 지정한 형식으로 값 출력

Linux / 명령어 / printf - 지정한 형식으로 값 출력

Linux printf 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어 / ssh-keygen - SSH 키 쌍 생성과 지문 확인

Linux / 명령어 / ssh-keygen - SSH 키 쌍 생성과 지문 확인

Linux ssh-keygen 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux / 명령어 / getent - NSS 사용자·그룹·호스트 정보 조회

Linux / 명령어 / getent - NSS 사용자·그룹·호스트 정보 조회

Linux getent 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어 / resolvectl - systemd DNS 설정과 이름 조회 상태 확인

Linux / 명령어 / resolvectl - systemd DNS 설정과 이름 조회 상태 확인

Linux resolvectl 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux / 명령어 / apt - Debian·Ubuntu에서 패키지 검색·설치·업데이트

Linux / 명령어 / apt - Debian·Ubuntu에서 패키지 검색·설치·업데이트

Linux apt 명령어의 적용 배포판과 기본 작업을 설명합니다. 패키지 조회·설치 예제, 주요 옵션과 시스템 변경 시 주의점을 알아봅니다.

Linux 강좌 / 리눅스란 무엇인가? 커널, 배포판, 오픈 소스 이해하기

Linux 강좌 / 리눅스란 무엇인가? 커널, 배포판, 오픈 소스 이해하기

리눅스 커널과 배포판은 어떻게 다를까요? 사용자 공간과 오픈 소스의 의미를 구분하고, 현재 시스템의 커널·배포판 정보를 확인하는 방법을 알아봅니다.

Linux / 명령어 / unxz - xz 압축 파일 풀기

Linux / 명령어 / unxz - xz 압축 파일 풀기

Linux unxz 명령어의 용도와 기본 문법을 알아봅니다. 파일 처리 예제, 주요 옵션과 원본 보존·덮어쓰기 주의점을 설명합니다.

Linux / 명령어 / stat - 파일 정보와 메타데이터 확인

Linux / 명령어 / stat - 파일 정보와 메타데이터 확인

Linux stat 명령어로 파일 크기, 권한, 소유자, inode와 타임스탬프를 확인하는 방법을 설명합니다. atime·mtime·ctime·Birth의 차이와 출력 형식, 파일 시스템 조회법도 정리합니다.