안녕하세요.
루디쿡 아이티입니다~!!
이번에 소개드릴 리눅스의 핵심 기술은 바로
안전한 원격 접속의 첫걸음 (ssh-keygen)입니다!!

ssh-keygen 이란?
ssh-keygen은 'SSH Key Generator'의 약자로,
이름 그대로 원격 접속을 위한
디지털 열쇠(Key)를 생성(Generate)하는 마법사 같은 도구입니다.
비밀번호처럼 사람이 외우는 방식이 아닌,
컴퓨터가 생성한 한 쌍의 정교한 암호 키를 만들어 서버 보안을 극대화합니다.
1995년, 핀란드의 연구원 타투 위뢰넨(Tatu Ylönen)은
대학교 네트워크에서 암호가 도청당하는 것을 목격한 후,
보안에 취약한 telnet이나 rsh를 대체하기 위해
SSH(Secure Shell) 프로토콜을 개발했습니다.
ssh-keygen은 바로 이 SSH의 심장부인 '공개키 기반 인증'에
사용될 열쇠 쌍을 만드는, "하나의 도구는 하나의 작업만 잘해야 한다"는
유닉스 철학을 고스란히 담은 최고의 전문가입니다. 📜
이 명령어를 사용하면 내 컴퓨터에만 소중히 보관하는
'개인키(Private Key)'와 접속하려는 서버에 안전하게 설치하는 '공개키(Public Key)' 한 쌍이 만들어집니다.
마치 내가 가진 열쇠로만 열 수 있는 자물쇠를 서버에 걸어두는 것과 같아서,
비밀번호 방식보다 훨씬 안전합니다.
ssh-keygen 명령어 완전 정복
가장 널리 쓰이는 ssh-keygen 명령어의 구조와 각 옵션의 의미를 표로 명확하게 정리해 보겠습니다.
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N ""
| 요소 | 설명 |
| ssh-keygen | SSH 공개키/개인키 쌍을 생성하는 명령어입니다. |
| -t rsa | 생성할 키의 타입(Type)을 지정합니다. rsa는 가장 오랫동안 널리 쓰인 안정적인 암호화 방식입니다. |
| -b 4096 | 키의 길이(Bits)를 4096비트로 지정합니다. 숫자가 클수록 해독이 어려운, 매우 강력한 암호화 수준을 의미합니다. |
| -f ~/.ssh/id_rsa | 생성될 키 파일(File)의 이름과 경로를 지정합니다. 이 경로에 id_rsa(개인키)와 id_rsa.pub(공개키) 두 파일이 생성됩니다. |
| -N "" | 키를 보호할 비밀번호(New passphrase)를 지정합니다. ""(큰따옴표 두 개)는 비밀번호를 사용하지 않겠다는 의미로, 자동화 스크립트 등에서 편리합니다. |
| -C "코멘트" | 키에 설명(Comment)을 추가합니다. 주로 어떤 용도의 키인지 식별하기 위해 이메일이나 서버 이름을 적어둡니다. (예시에서 사용) |
ssh-keygen 실제 예시
이제 ssh-keygen을 이용해 루디쿡아이티(Rudi Cook IT)의
메인 서버에 접속하기 위한 새로운 SSH 키를 생성하는 과정을 살펴보겠습니다.
예시: 루디쿡아이티 서버 접속용 고강도 키 생성하기
보안을 위해 4096비트 길이의 RSA 키를 생성하고,
어떤 용도인지 알 수 있도록 "Rudi Cook IT server key" 라는 설명을 추가해 보겠습니다.
| 구분 | 내용 |
| 목표 | 루디쿡아이티 서버 접속용으로, 비밀번호가 없는 4096비트 RSA 키를 ~/.ssh/id_rsa_rudicook 파일로 생성하기 |
| 전체 명령어 | ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_rudicook -N "" -C "Rudi Cook IT server key" |
| 명령어 분석 | -t rsa: RSA 타입으로, -b 4096: 4096비트 길이로, -f ...: id_rsa_rudicook이라는 이름으로, -N "": 비밀번호 없이, -C ...: "Rudi Cook IT server key"라는 설명을 붙여서 키를 생성해라! |
실행 결과 ✨
Generating public/private rsa key pair.
Your identification has been saved in /home/rudicook/.ssh/id_rsa_rudicook.
Your public key has been saved in /home/rudicook/.ssh/id_rsa_rudicook.pub.
The key fingerprint is:
SHA256:q9g... user@hostname
The key's randomart image is:
+---[RSA 4096]----+
| .o*B++.. |
| . =*o=.+ |
| . o.o o . |
| . .+ . |
| S . |
| . .. |
| .o.. |
| ..o. |
| E.+. |
+----[SHA256]-----+
결과 분석
명령을 실행하면 위와 같은 결과와 함께, 지정된 경로(~/.ssh/)에
개의 파일이 성공적으로 생성된 것을 확인할 수 있습니다.
| 파일명 | 설명 | 비유 | 보안 수준 |
| id_rsa_rudicook | 개인키(Private Key). 이 파일이 있으면 서버에 접속할 수 있는 권한을 증명합니다. | 나의 신분증 또는 집 열쇠 |
절대 외부 노출 금지
|
| id_rsa_rudicook.pub | 공개키(Public Key). 접속하려는 서버에 미리 등록해두는 파일입니다. | 서버에 설치하는 자물쇠 | 외부 공개 가능 |
이전 포스팅 되었던 ssh, scp 명령어는
명령어를 수행할 때마다 비밀번호를 물어보기 때문에
비밀번호 물어보지 않고 명령줄에 추가 비밀번호 입력이 들어가기 때문에 스크립트 자동화가 안되어서
"비밀번호를 등록할 수는 없을까??"라는 의문이 드셨을 텐데요!!
그걸 바로 루디쿡 아이티는 여러분께 쉽고 재밌게 알려드립니다~!!
IT실무 환경에서도 개인키, 공개키는 자주 사용되며
이참에 개념을 확실하게 잡고 가시면 PM 또는 고객분들의 신뢰를 얻을 수 있습니다~!!
scp, ssh 명령어를 모르시는 분들은 제가 작성한 블로그를 살펴보시고 익히시기 바랍니다!!
[scp]
https://rudicookit.tistory.com/65
[ssh]
https://rudicookit.tistory.com/66
이것으로 안전한 서버 원격 접속의 가장 중요한 첫 단추, ssh-keygen에 대해 알아보았습니다.
앞으로도 좋은 글로 찾아뵙도록 하겠습니다.
IT 성능 전문가, IT를 전하는 루디쿡아이티였습니다!!

감사합니다~!!

'인프라 (Infrastructure) > 운영체제 (OS)' 카테고리의 다른 글
| 리눅스 telnet 명령어 사용법 및 실제 예제 활용 | 목적지 포트 확인, 방화벽 확인 (0) | 2025.09.12 |
|---|---|
| 리눅스 passwd 명령어 사용법 및 실제 예제 활용 | 암호 변경, 잠긴 계정 풀기 (1) | 2025.09.12 |
| 리눅스 ssh 명령어 사용법 및 실제 예제 활용 | 원격접속, 터미널접속 (1) | 2025.09.12 |
| 리눅스 scp 명령어 사용법 및 실제 예제 활용 | 원격 전송, 파일 복사 (0) | 2025.09.12 |
| 리눅스 EOF 처리 패턴 사용법 실제 예제 활용 | End Of File, 스크립트 노하우 (0) | 2025.09.12 |