간단하게 살펴보는 SSH 키

SSH 키의 정의와 생성 방법
calendar icon

2025년 5월 8일

조회 11

tag icon

SSH 키는 컴퓨터 간에 안전하게 통신하기 위한 암호화된 인증 방식이다. 특히 서버에 원격으로 접속할 때 비밀번호 대신 사용할 수 있어 보안성과 편의성이 뛰어나다. SSH(Secure Shell)는 네트워크를 통해 다른 컴퓨터에 안전하게 접속하고 명령어를 실행할 수 있게 해주는 프로토콜이며, 이때 사용하는 인증 방식 중 하나가 SSH 키 기반 인증이다.


SSH 키의 구조

SSH 키는 쌍(Pair) 으로 이루어져 있다.

  • 공개 키(Public Key): 누구에게나 공개해도 무방한 키로, 접속하고자 하는 서버에 저장한다.
  • 개인 키(Private Key): 절대로 외부에 공개해서는 안 되는 키로, 접속하는 클라이언트(본인 컴퓨터)에만 보관한다.

이 두 키는 서로 짝을 이루며, 한쪽으로 암호화한 데이터는 반드시 반대쪽 키로만 복호화할 수 있다. 이를 비대칭 키 암호화라고 한다.


SSH 키 인증 방식의 작동 원리

  1. 사용자는 먼저 SSH 키 쌍을 생성합니다 (ssh-keygen 명령어 등 사용).
  2. 생성된 공개 키를 서버의 ~/.ssh/authorized_keys 파일에 등록한다.
  3. 클라이언트(사용자 컴퓨터)는 개인 키를 보관한다.
  4. 접속 시, 서버는 해당 공개 키에 해당하는 개인 키를 가지고 있는지를 확인하기 위해 암호화된 메시지를 보낸다.
  5. 클라이언트는 개인 키로 이를 복호화해서 인증을 통과한다.

이 과정에서 비밀번호는 사용되지 않으며, 키 파일 자체가 신분증 역할을 한다.


SSH 키의 장점

  • 보안 강화: 비밀번호를 탈취당하거나 추측당할 위험이 줄어든다.
  • 자동화 가능: 스크립트나 배치 작업에서 사용자 개입 없이 인증할 수 있어 자동화에 유리히다.
  • 편리성: 한 번 설정해 두면, 서버 접속 시 매번 비밀번호를 입력할 필요가 없다.
  • 다중 서버 관리에 유용: 동일한 공개 키를 여러 서버에 등록해두면, 하나의 개인 키로 여러 서버에 접근할 수 있다.

SSH 키 생성

SSH 키를 생성하는데에는 2가지 방법이 있다.

하지만 회사같은 곳에서는 세부적인 사항을 설정하는 경우가 많기에 수동을 추천한다.

방법특징추천 상황
1. gcloud CLI로 자동 생성가장 간편함.
명령어 한 줄로 생성 및 등록
초보자
빠른 실습용
2. 수동(로컬)로 ssh-keygen 사용키 파일 직접 제어 가능.
커스터마이징 자유
보안 요구 높은 환경
사내 서버 연동

🔵 방법 1: gcloud compute ssh로 자동 생성

✅ 과정

  1. gcloud 명령어로 VM 접속을 시도한다.
gcloud compute ssh [VM_NAME] --zone=[ZONE]
  1. 만약 연결할 때 등록된 SSH 키가 없다면, gcloud가 로컬에 새 키를 생성하고,

    GCP VM에 자동으로 퍼블릭 키를 등록해준다.

  2. 키 파일은 보통 다음 경로에 저장된다:

~/.ssh/google_compute_engine
~/.ssh/google_compute_engine.pub

(비밀번호 없이 접속 가능)


✅ 장점

  • 명령어 한 줄로 끝 (자동 생성 + 자동 등록)
  • VM 인스턴스 메타데이터에 자동으로 퍼블릭 키 추가
  • 키 만료 설정도 자동 지원 (30일 기본)

✅ 단점

  • 키 이름이나 경로 커스터마이징이 어려움
  • 키 관리 정책(복수 키 발급, 강제 갱신 등)이 제한적임

🔵 방법 2: 수동으로 ssh-keygen으로 직접 생성

✅ 과정

  1. 로컬 PC에서 SSH 키 쌍 생성
ssh-keygen -t rsa -f ~/.ssh/my-gcp-key -C [USERNAME]

옵션 설명:

  • t rsa: RSA 키 타입으로 생성
  • f: 파일 이름 지정
  • C: 키에 주석(사용자명) 추가
  1. 생성된 파일:
파일내용
my-gcp-key비밀 키 (Private Key)
my-gcp-key.pub공개 키 (Public Key)
  1. 퍼블릭 키 파일(.pub)을 복사해서 GCP에 등록
  • GCP 콘솔 → Compute Engine → VM 인스턴스 → SSH 키 추가
  • 또는 gcloud compute instances add-metadata 명령어 사용
gcloud compute instances add-metadata [VM_NAME] \
    --zone=[ZONE] \
    --metadata-from-file ssh-keys=~/.ssh/my-gcp-key.pub
  1. 접속 시 수동으로 키 지정
  • 참고로 EXTERNAL_IP는 VM 인스턴스 외부 IP를 의미한다.
ssh -i ~/.ssh/my-gcp-key [USERNAME]@[EXTERNAL_IP]

✅ 장점

  • 키 이름, 위치, 주석 등 모두 직접 설정 가능
  • 하나의 키를 여러 서버에 재사용 가능
  • 기업 보안 정책에 맞춰 커스터마이징 가능

✅ 단점

  • 수동 등록, 수동 관리 필요
  • 실수로 권한(600) 설정 안 하면 보안 위험

📌 참고: SSH 키 파일 권한 설정

비밀키 파일(.pem, .key, id_rsa 등)은 반드시 권한을 600으로 제한해야 합니다.

chmod 600 ~/.ssh/my-gcp-key

안 하면 SSH 접속 시 다음 에러 발생:

WARNING: UNPROTECTED PRIVATE KEY FILE!

✅ 요약: 어떤 방식을 언제 쓰나?

상황추천 방법
빠르게 GCP VM 접속하고 싶을 때gcloud compute ssh (자동 생성)
키를 직접 관리하고 싶을 때ssh-keygen 수동 생성 후 수동 등록
회사/팀 보안 정책을 따를 때ssh-keygen 후 수동 등록 (권한 설정 주의)

🎯 결론

위와 같은 방법으로 ssh 키를 생성할 수 있다.

ssh키는 생성되면, 어느곳에서든 사용이 가능하다. 용도별로 이름을 나누어 key를 생성할 수 있지만, 그러지 않고 하나의 키로 전부 사용하는 것도 가능하다는 말이다.

이제 생성한 키를 가지고 원하는 곳에 사용하면 된다.

좋아요 —
hamburger icon

무링의 개발 블로그

FDE를 향하는 개발자


댓글

GitHub 계정으로 로그인하면 댓글을 남길 수 있습니다.

로그인

연관된 글