
다음은 직접 테스트한 결과를 바탕으로,
GCP의 SSH 키 동작방식을 정리한 내용이다.
아래 예시를 보도록 하자.
ssh-rsa AAAAB3... jundragon
여기서 GCP 콘솔은 마지막 주석인 jundragon을 보고 인스턴스에서 jundragon 리눅스 사용자를 생성하고, 이 계정의 authorized_keys에 키를 추가한다.

이와 같이 자동으로 주석의 위치에 있던, 사용자 이름 jundragon 이 입력되게 된다.
.ssh/authorized_keys 파일에 등록된 Public Key를 추가하는 형태로 동작한다.이제 SSH키를 등록하는 방법에 대해서 알아보자.
GCP에서는 아래 2가지 방법으로 SSH 키를 등록할 수 있다.
VM의 콘솔 화면에서 SSH키를 등록할 때 주석(comment)에 사용자명을 포함하여 입력하는 방법이다.
ssh-ed25519 AAAAC3... hello
콘솔은 이 hello 주석(comment)을 기반으로 hello 계정을 VM에 자동으로 생성 및 authorized_keys에 등록한다.

두번째로는 명령어를 사용하여 메타데이터를 추가하는 방법이다.
이 때 사용자명 접두사 형식으로 입력해야 한다.
예시를 보도록하자.
해당 명령어는 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

GCP 콘솔이나 gcloud CLI를 사용하지 않고,
직접 SSH로 접속할 VM에 미리 접속해 해당 리눅스 사용자 계정의 ~/.ssh/authorized_keys 파일에 Public Key를 추가한다.
Public Key 등록할 때 어떤 사용자의 home/[사용자]/.ssh/authorized_keys 에 어떤 방식으로 넣어주는지가 중요하다.| 방식 | Public Key 등록 방법 | 리눅스 계정 자동생성 여부 |
|---|---|---|
| 콘솔 UI | SSH 키의 주석으로 (comment) | ✅ 자동 생성 |
| gcloud CLI | 사용자명을 SSH키 접두사로 (username:) | ✅ 자동 생성 |
| 수동 등록 | 사용자가 직접 VM의 파일에 SSH 키를 넣어줌 (home/[사용자]/.ssh/authorized_keys) | ❌ 수동 생성 |
gcloud CLI 방식에서는 접두사를 통해 사용자를 결정한다는 차이가 있다.