본문 바로가기
aws

[AWS] SSH 접속용 키 수동 생성

by clolee 2025. 4. 17.

좋습니다. 질문을 요약하면 다음과 같아요:

🔹 EC2 생성 시에는 ssh-keygen -t rsa 명령어가 필요 없는가?

🔹 사용자 계정을 직접 생성할 경우엔 이 명령어를 써야 하는가?

🔹 그렇다면 이 명령어의 정확한 의미와 전체 SSH 키 구조는 어떻게 되는가?

SSH 접속용 키 수동 생성


✅ 1. ssh-keygen -t rsa는 언제 필요할까?

상황 필요 여부 설명
🔹 AWS EC2 인스턴스 생성 시 콘솔에서 키 페어 생성 ❌ 필요 없음 AWS가 자동으로 키 페어를 생성하여 다운로드하게 함
🔹 내 로컬 PC에서 직접 키를 만들어서 공개키를 EC2에 등록할 때 ✅ 필요함 공개키는 EC2 서버에, 개인키는 로컬에 보관
🔹 리눅스에서 새 사용자 계정 생성 후 SSH 접속 허용할 때 ✅ 필요함 새 사용자용 키를 직접 생성하고 authorized_keys 등록

즉, EC2 초기 생성은 AWS가 대신 해주기 때문에 필요 없지만,

사용자 계정을 새로 만들거나, AWS가 아닌 서버에서는 필수입니다.


✅ 2. ssh-keygen -t rsa 명령어의 의미

ssh-keygen -t rsa -b 2048 -C "your_email@example.com"
옵션 의미
ssh-keygen SSH 키를 생성하는 명령어
-t rsa 키 유형: RSA 알고리즘 사용
-b 2048 키 길이: 2048비트 (기본값, 보통 충분함)
-C 키 주석 (보통 이메일 등 식별용 설명 추가)

🛠️ 실행 시 결과:

  • ~/.ssh/id_rsa (개인키)
  • ~/.ssh/id_rsa.pub (공개키)

✅ 3. SSH 키 인증 흐름 구조도 (공개키 / 개인키)

[로컬 PC]
┌────────────────────────────┐
│ id_rsa       (개인키)      │
│ id_rsa.pub   (공개키)      │
└────────────────────────────┘
       │
       ▼
[원격 서버: EC2]
┌────────────────────────────┐
│ ~/.ssh/authorized_keys     │ ← 공개키 저장
└────────────────────────────┘

🔐 접속 시 동작:

  1. 로컬에서 개인키로 전자서명 생성
  2. 서버가 authorized_keys에 등록된 공개키로 검증
  3. 일치하면 접속 허용

✅ 4. 사용자 계정 추가 시 SSH 설정 흐름

예시: newuser 계정에 SSH 접속 허용

# 1. 사용자 생성
sudo adduser newuser

# 2. 사용자로 전환
su - newuser

# 3. SSH 디렉토리 생성 및 권한 설정
mkdir -p ~/.ssh
chmod 700 ~/.ssh

# 4. 공개키 등록
echo "ssh-rsa AAAAB3..." > ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
  • 공개키는 직접 생성한 id_rsa.pub의 내용
  • 개인키(id_rsa)는 로컬 PC에만 보관

✅ 5. 키 생성과 사용 정리

상황 키 생성 필요? 명령어
AWS 콘솔에서 EC2 생성 AWS가 자동 생성
로컬에서 SSH 접속용 키 수동 생성 ssh-keygen -t rsa
다른 사용자 추가하여 접속 허용 공개키 수동 등록 필요
GitHub 등 외부 서비스에서 SSH 인증 사용 ssh-keygen 후 공개키 등록

✅ 6. SSH 키와 비밀번호 인증 비교

항목 비밀번호 로그인 SSH 키 로그인
보안 낮음 (사전 대입 공격 가능) 높음 (비대칭키 암호화)
자동화 어려움 쉬움
분실 시 복구 가능 (비밀번호 재설정) 불가능 (개인키 없으면 끝)
AWS 기본 방식 ❌ 비활성화 ✅ 활성화됨

✅ 마무리 요약

  • ssh-keygen -t rsa로컬에서 SSH 키를 수동 생성할 때 사용.
  • EC2 콘솔에서 키 페어 생성 시에는 자동으로 키가 생성되므로 필요 없음.
  • 새로운 사용자 계정을 EC2에 추가하거나, 직접 만든 서버에서 SSH 접속을 허용하려면 반드시 키를 생성하고 공개키를 등록해야 함.
  • SSH 키 인증은 공개키를 서버에, 개인키를 본인만 보관하는 구조로 매우 안전함.

댓글