SSH Key 가이드

SSH 키 생성 명령어 자동 생성, 공개키 등록, SSH config 설정까지 한 번에 확인하세요.

Ed25519
빠르고 안전한 최신 알고리즘
권장
RSA
가장 널리 호환되는 알고리즘
ECDSA
타원곡선 기반 알고리즘
DSA
레거시 (비권장)
SSH 키 설정 가이드

Step 1. SSH 키 생성 필수

Step 2. 키 파일 권한 설정 필수

Step 3. 공개키 확인 및 복사

Step 4. 서버에 공개키 등록 (authorized_keys)

Step 5. SSH config 설정

Step 6. SSH 접속 테스트

보너스: ssh-agent에 키 등록


SSH Key 가이드 - SSH 키 생성 및 관리 완벽 가이드

SSH(Secure Shell) 키는 서버에 안전하게 접속하기 위한 암호화 기반 인증 방식입니다. 비밀번호 대신 공개키/개인키 쌍을 사용하여 로그인하면 브루트포스 공격에 대한 방어력이 크게 향상되며, 매번 비밀번호를 입력하지 않아도 되어 편리합니다. 이 도구는 개발자와 서버 관리자가 SSH 키를 생성하고 관리하는 전 과정을 단계별로 안내합니다.

SSH 키 인증은 공개키 암호화 방식에 기반합니다. 개인키(Private Key)는 로컬 컴퓨터에 안전하게 보관하고, 공개키(Public Key)는 접속하려는 서버의 authorized_keys 파일에 등록합니다. 접속 시 서버는 공개키로 챌린지를 암호화하고, 클라이언트가 개인키로 이를 복호화하여 신원을 증명하는 방식으로 인증이 이루어집니다.

현재 가장 권장되는 키 알고리즘은 Ed25519입니다. Ed25519는 Curve25519 타원곡선을 기반으로 하며, RSA보다 키 크기가 작으면서도 동등하거나 더 높은 보안 수준을 제공합니다. 키 생성과 서명 속도도 RSA에 비해 월등히 빠릅니다. 다만, 구형 시스템이나 일부 레거시 장비에서는 Ed25519를 지원하지 않을 수 있으므로, 이 경우 RSA 4096비트를 사용하는 것이 좋습니다.

SSH config 파일(~/.ssh/config)을 활용하면 여러 서버에 대한 접속 정보를 미리 설정해둘 수 있습니다. 호스트 별칭, 사용자명, 포트 번호, 사용할 키 파일 등을 지정하면 간단한 명령어 하나로 원하는 서버에 접속할 수 있습니다. 이는 특히 여러 서버를 관리하는 DevOps 엔지니어나 다수의 Git 리포지토리를 다루는 개발자에게 필수적입니다.

키 파일의 권한 설정도 매우 중요합니다. 개인키 파일은 반드시 소유자만 읽을 수 있도록 600(또는 400) 권한을 설정해야 하며, .ssh 디렉토리는 700 권한이어야 합니다. 권한이 잘못 설정되어 있으면 SSH 클라이언트가 키 사용을 거부합니다. 이 도구에서 생성하는 명령어에는 올바른 권한 설정 명령이 포함되어 있으므로 안심하고 사용할 수 있습니다.

ssh-agent를 활용하면 세션 동안 개인키의 패스프레이즈를 캐싱하여, 한 번 입력한 후에는 반복 입력 없이 여러 서버에 접속할 수 있습니다. GitHub, GitLab 등의 Git 호스팅 서비스에 SSH 키를 등록하면 HTTPS 대신 SSH 프로토콜로 리포지토리를 클론하고 푸시할 수 있어, 토큰 관리의 번거로움을 줄일 수 있습니다.

키 타입별 비교

자주 묻는 질문 (FAQ)

Q. Ed25519와 RSA 중 어떤 것을 선택해야 하나요?

A. 특별한 호환성 요구사항이 없다면 Ed25519를 권장합니다. Ed25519는 RSA 4096비트와 동등한 보안 수준을 256비트 키로 달성하며, 키 생성과 인증 속도가 훨씬 빠릅니다. 구형 서버나 임베디드 장비 등 Ed25519를 지원하지 않는 환경에서만 RSA 4096비트를 사용하세요.

Q. SSH 키에 패스프레이즈를 설정해야 하나요?

A. 보안을 위해 패스프레이즈 설정을 강력히 권장합니다. 패스프레이즈는 개인키 파일이 유출되었을 때 추가 보호층 역할을 합니다. ssh-agent를 사용하면 패스프레이즈를 세션당 한 번만 입력하면 되므로 불편함이 최소화됩니다.

Q. authorized_keys 파일에 여러 공개키를 등록할 수 있나요?

A. 네, authorized_keys 파일에는 한 줄에 하나씩 여러 공개키를 등록할 수 있습니다. 이를 통해 여러 컴퓨터에서 같은 서버에 접속하거나, 여러 사용자가 같은 계정에 접속할 수 있습니다.

Q. SSH 키를 분실하거나 유출되면 어떻게 하나요?

A. 즉시 해당 공개키를 모든 서버의 authorized_keys 파일에서 제거하고, 새로운 키 쌍을 생성하여 다시 등록해야 합니다. 패스프레이즈가 설정되어 있었다면 공격자가 키를 사용하기 어렵지만, 예방 차원에서 키를 교체하는 것이 안전합니다.

Q. GitHub/GitLab에 SSH 키를 등록하려면?

A. 공개키(.pub 파일)의 내용을 복사하여 해당 서비스의 Settings > SSH Keys 메뉴에 붙여넣기 하면 됩니다. 이 도구의 Step 3에서 공개키를 확인하는 명령어를 제공합니다. ssh -T git@github.com 명령으로 연결을 테스트할 수 있습니다.

Q. Windows에서도 SSH 키를 사용할 수 있나요?

A. Windows 10 이상에서는 OpenSSH가 기본 내장되어 있어 PowerShell이나 명령 프롬프트에서 동일한 ssh-keygen 명령어를 사용할 수 있습니다. 또는 Git Bash, WSL(Windows Subsystem for Linux)을 통해서도 사용할 수 있습니다.