GCP VM의 SSH Key 등록 규칙

vinca·2025년 7월 16일

다음은 직접 테스트한 결과를 바탕으로,
GCP의 SSH 키 동작방식을 정리한 내용이다.

SSH 키 등록 핵심 사항

1. SSH 키 생성 위치는 중요하지 않다

  • SSH 키를 어느 사용자, 어느 머신에서 생성했는지는 전혀 중요하지 않다.
  • 중요한 건 등록할 때 지정된 리눅스 사용자 이름이다.

2. 키의 "주석(comment)"이 GCP 콘솔에서는 중요한 역할을 한다

  • 원칙적으로 SSH 키 뒤에 오는 마지막 값은 단순한 주석(comment) 이다.
  • 하지만 GCP 콘솔에서는 이 주석(comment)을 기반으로 리눅스 사용자 이름을 자동으로 지정 및 생성한다.

아래 예시를 보도록 하자.

ssh-rsa AAAAB3... jundragon

여기서 GCP 콘솔은 마지막 주석인 jundragon을 보고 인스턴스에서 jundragon 리눅스 사용자를 생성하고, 이 계정의 authorized_keys에 키를 추가한다.

이와 같이 자동으로 주석의 위치에 있던, 사용자 이름 jundragon 이 입력되게 된다.


3. 리눅스 계정은 없으면 자동으로 생성한다

  • 지정된 리눅스 사용자 이름이 VM에 없으면, GCP는 이 사용자 계정을 자동으로 생성한다.
  • 이후 자동 생성된 계정의 홈 디렉토리 내 .ssh/authorized_keys 파일에 등록된 Public Key를 추가하는 형태로 동작한다.

이제 SSH키를 등록하는 방법에 대해서 알아보자.

SSH 키 등록 방법

GCP에서는 아래 2가지 방법으로 SSH 키를 등록할 수 있다.

방법 1. GCP 콘솔에서 SSH 키 입력

VM의 콘솔 화면에서 SSH키를 등록할 때 주석(comment)에 사용자명을 포함하여 입력하는 방법이다.

ssh-ed25519 AAAAC3... hello

콘솔은 이 hello 주석(comment)을 기반으로 hello 계정을 VM에 자동으로 생성 및 authorized_keys에 등록한다.


방법 2. gcloud CLI를 사용하여 SSH 키 입력

두번째로는 명령어를 사용하여 메타데이터를 추가하는 방법이다.
이 때 사용자명 접두사 형식으로 입력해야 한다.

예시를 보도록하자.
해당 명령어는 ssh_keys.txt에 Public Key가 담겨있는 형태로, 인스턴스에 SSH 키를 추가하는 형태이다.

명령어

gcloud compute instances add-metadata vm-inflearn-private \
  --zone=asia-east1-c \
  --metadata-from-file ssh-keys=ssh_keys.txt (ssh public키 내용)

파일을 열어보면 Public Key 앞부분에 사용자명 접두사인 hello:가 붙어있는 것을 확인할 수 있다.

# ssh_keys.txt
hello:ssh-rsa AAAAB3... zoosuck

위 방법으로 등록하면 VM에는 hello 사용자 계정이 생성되게 된다.

단, authorized_keys 내 Public Key의 값은 원문 Public Key 그대로인 사용자명: 접두사가 없이 저장된다.

# authorized_keys 파일 내 저장된 형태
ssh-rsa AAAAB3... zoosuck


방법 3. 수동 등록

GCP 콘솔이나 gcloud CLI를 사용하지 않고,
직접 SSH로 접속할 VM에 미리 접속해 해당 리눅스 사용자 계정의 ~/.ssh/authorized_keys 파일에 Public Key를 추가한다.


핵심 요약

  • 키를 어떤 계정으로, 어디에서 생성하는 지는 전혀 상관없다.
    생성된 Public Key 등록할 때 어떤 사용자의 home/[사용자]/.ssh/authorized_keys 에 어떤 방식으로 넣어주는지가 중요하다.
방식Public Key 등록 방법리눅스 계정 자동생성 여부
콘솔 UISSH 키의 주석으로 (comment)✅ 자동 생성
gcloud CLI사용자명을 SSH키 접두사로 (username:)✅ 자동 생성
수동 등록사용자가 직접 VM의 파일에 SSH 키를 넣어줌 (home/[사용자]/.ssh/authorized_keys)❌ 수동 생성
  • SSH 키에서 원래 의미가 없던 "주석(comment)"이 GCP 콘솔에서는 리눅스 계정명 결정에 핵심적 역할을 한다.
  • gcloud CLI 방식에서는 접두사를 통해 사용자를 결정한다는 차이가 있다.
profile
붉은 배 오색 딱다구리 개발자 🦃Cloud & DevOps

0개의 댓글