Linux

SSH Key 설정 과정 정리

Frisbeen 2025. 4. 7. 16:35

다음은 로컬 클라이언트에서 SSH 키를 생성하고, 서버에 등록하여 비밀번호 없이 접속할 수 있도록 설정한 전체 과정을 정리한 것입니다.

SSH키를 생성하면, 개인키와 공개키가 만들어지고, 우리는 그 공캐를 엄청나게 긴 .. 녀석을 복사해서

서버에 주입하는 방식으로 처리합니다.


✅ 1. SSH 키 생성 (로컬)

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  • 기본 경로(~/.ssh/id_rsa)에 생성하거나 직접 경로 지정 가능
  • .ssh/id_rsa: 개인키 (비공개)
  • .ssh/id_rsa.pub: 공개키 (서버에 등록할 키)

✅ 2. 공개키 확인 및 복사 (로컬)

cat ~/.ssh/id_rsa.pub
  • 출력되는 한 줄짜리 공개키 내용을 복사함

✅ 3. SSH로 서버 접속 (비밀번호 방식)

ssh ubuntu@192.168.64.2
  • 비밀번호 입력을 통해 접속 (공개키를 주입하기 전이므로 현재는 비밀번호를 넣지만) 나중엔 그냥 자동으로 들어가질겁니다!

✅ 4. 서버에서 공개키 등록

mkdir -p ~/.ssh
vi ~/.ssh/authorized_keys
  • 편집기(vi)에서 기존 내용 삭제 후, 복사한 공개키를 붙여넣기
  • 저장 및 종료
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
  • 디렉토리 및 파일 권한 설정 (필수)

✅ 5. SSH 키 기반 재접속 테스트 (로컬)

exit                        # 서버에서 로그아웃
ssh ubuntu@192.168.64.2     # 비밀번호 없이 접속되는지 확인

🔐 성공 시 비밀번호 없이 바로 로그인됨


🔒 이거 왜 함? (세 줄 요약)

  • 비밀번호 로그인은 brute force 공격에 취약 → 비활성화 가능
  • 개인키는 로컬에만 존재 → 유출 위험 줄어듦
  • 공개키는 서버에만 등록 → 안전한 인증 방식

🔁 선택적으로 추가할 수 있는 보안 조치

 

sudo nano /etc/ssh/sshd_config

설정 변경:

PasswordAuthentication no

적용:

sudo systemctl restart ssh

→ 오직 SSH 키로만 로그인 가능하도록 설정


이 과정을 통해 SSH 접속의 보안성이 강화되었고, 비밀번호 없는 빠른 접속 환경도 구축되었겠습니다.