본문 바로가기
Cloud/Google Cloud Platform

GCP(Google Cloud) 로컬 PC에서 VM에 로그인 없이 바로 SSH로 바로 접속: 다른 SSH 클라이언트 사용 및 SSH Key 등록

by Kibua20 2020. 8. 1.

Google Cloud Platform(GCP)의 가상 머신(Virtual Machine) SSH 접속은 기본적으로 Chrome에서 Google Cloud Platform 사이트에 로그인 후 브라우저의 SSH Client를 사용합니다. GCP 로그인 없이 로컬 PC의 터미널이나 윈도우의 Putty를 이용해서 좀 더 편하게 접속하는 방법을 정리하였습니다. 

 

구글 공식 가이드는 링크를 확인부탁드리며, 회사의 큰 조직에서 사용하는 경우에 대한 보안을 고려(e.g. 계정 만료 시간)하여 조금 어렵게 설명되어 있는 것을  필요한 내용만 쉽게 정리하였습니다. 

 

GCP VM에 SSH로 연결하는 방법은 아래와 같이 3단계로 진행해야 합니다.

  1. Local PC에서 SSH 인증용 RSA Private-Public Key 생성
  2. 원격 GCP 서버에 로컬 PC에서 생성한 Public Key 등록 
  3. Google API Console에서 프로젝트 Meta에 SSH Public Key 등록 

1단계와 2단계는 일반 리눅스에서 SSH Key 등록하는 절차와 동일하며, 3단계 항목만 GCP 특화된 내용으로 적용하지 않으면 Permission deny 됩니다. 

 

1. Local PC에서 SSH 인증용 RSA Private-Public Key 생성  

로컬 PC에서 ssh-keygen 도구를 사용하여 키를 생성할 수 있습니다.   이 단계에서는 GCP VM에서 등록된 계정 이름을 -C 플래그로 추가해야 합니다. 

 

$ ssh-keygen -t rsa -f ~/.ssh/[KEY_FILENAME] -C [USERNAME(GCP 계정]

$ ssh-keygen -t rsa -f ~/.ssh/gcp_key -C kibua20@gmailcom

 

# 필요시 공용 PC에서는 내 계정에서만 접근 가능하도록 Permission 변경

$ chmod 400 ~/.ssh/[KEY_FILENAME]

 

로컬 PC에서 RSA Private-Public Key pair 생성

 

2. 원격 GCP 서버에 로컬 PC에서 생성한 Public Key 등록 

GCP VM에 접속하여 로컬 PC에 생성한 RSA public key를 등록해야 합니다. 즉,  로컬 PC의  ~/. ssh/gcp_key.pub의 내용을 copy 해서 GCP 서버의 ~/.ssh/authorized_keys에 추가합니다.  참고로, RSA public key는 ssh-rsa로 시작해서 실제 Key 값에 해당하는 문자열과 -C 옵션으로 추가된 계정 이름으로 저장되어 있고, 이 내용을 그대로 copy & paste 해서 적용하면 됩니다. 

 

$ vi  .ssh/authorized_keys

$ cat .ssh/authorized_keys

$ vi로 key 값을 copy & past

 

GCP 서버에 SSH Key 등록

이 단계까지는 일반 리눅스 서버에 SSH Key 등록과 동일하지만,  로컬 PC에서 GCP VM에 SSH 접속하면 아래와 같이 Permission deny 되어 아래 3단계를 진행해야 합니다.

SSH 로그인 시 Permission deny

 

3. Google API Console에서 프로젝트 Meta에 SSH Public Key 등록 

Google API console에 접속해서 Meta 데이터를 확인해보면  Google에서 추가한 값들이 이미 저장되어 있습니다. Google이 추가한 Key와 함께 로컬 PC에서 생성한 SSH RSA Public key를 그대로 추가합니다. \

  1. Google API Console에서 '메타 데이터' 선택'
  2. SSH Key' 선택
  3. '수정' 선택
  4. SSH Key 항목에서 '항목 추가'를 선택하고 로컬 PC에서 GCP 용으로 생성한 Key (gcp_key.pub) 파일을 내용을 추가합니다.

Google API Console에서 Meta 데이터에 SSH Key 값 추가

 

3단계까지 진행한 후에 VM 인스턴스에서 '외부 IP'를 확인하고 ssh kibua20@[외부 IP]로 접속하면 로컬 PC에서 Google API Console 로그인 없이 GCP VM을 사용 가능합니다.  외부 IP는 고정 IP를 신정하지 않았으면 부팅할 때마다 변경되고, 계속 파워 온 상태에서 사용하는 경우 그대로 유지됩니다. 

외부 IP 확인 방법
로컬 PC에서 GCP VM에 접속

 

관련 글

[개발환경/Google Cloud Platform] - GCP 원격 데스크 톱(RDP) 연결: Linux 용 Chrome RDP

[개발환경/Google Cloud Platform] - GCP (Google Cloud) 하드 디스크 추가하기 (영구 디스크는 30GB까지 무료)

[개발환경/Google Cloud Platform] - GCP (Google Cloud) 방화벽 설정: 프로토콜과 포트를 사용 허용 또는 거부하기

[개발환경/Google Cloud Platform] - Google Cloud Platform을 활용하여 평생 '무료' PC 만들기

[개발환경] - GitHub 아이디/패스워드 입력 없이 사용하는 방법

[모바일 SW 개발/REST API] - 우분투 20.04에서 Web 서버 설치 방법 (apache2, tomcat9)

[개발환경] - 우분투에서 7zip command line 사용하기 (p7zip과 7za추천)

[개발환경] - [Memo] 우분투에서 gmail활용하여 command line으로 email 전송

[개발환경] - 윈도우용 MobaXterm - SSH 및 X-Server 지원

[개발환경] - Ubuntu 20.04에서 sshfs 를 이용한 원격 폴더 마운트




댓글