GCP Compute Engine ssh 연결

Damianos
5 min readApr 10, 2021

Google cloud platform에서 VM을 생성하면 Instance 리스트에 각 VM의 연결 관련 정보들이 보인다 특히 ssh 연결이 가능한 버튼도 있어 이를 누르면 바로 ssh 터미널이 웹UI를 통해 별도의 인증과정 없이 명령프롬프트로 진입이 가능하다. 패스워드 입력도 없고 퍼블릭키를 설정하는 과정도 없다. 구글에서는 공식적으로 Google Computing Engine Tool 이라고 이야기 하고 있다.

google cloud compute engine VM instances list

위 그림과 같이 SSH옆의 버튼을 누르면 나오는 팝업 메뉴에서 Open in browser window 를 선택하면 다음과 같은 순서로 자연스럽게 로그인이 이루어진다.

google cloud compute engine sshconnection example 1
google cloud compute engine ssh connection example 2
google cloud compute engine ssh tool

매우 편리하여 Linux 인스턴스 생성후 필요한 작업들은 바로바로 진행할 수 있게된다. 그렇지만 작업을 더 신속히 진행하려다 보면 자신의 장비에서 익숙하게 사용하는 터미널 프로그램을 이용하고 싶은 욕심이 생긴다. 실제로 나는 iTerm2에 익숙해 있어서 직접 터미널 앱을 GCP에 붙도록 시도해보게 되었다.

이렇게 하게된 이유는 다음과 같다고 볼 수 있다.

  1. GCP에서 제공하는 터미널은 폰트의 선명도나 모양에 있어 가독성이 떨어진다.
  2. 배경 색상이 흰색과 검정색 두 개만 지원된다. 커스텀이 있지만 설정이 용이하지 않다.
  3. 파일 업로드/다운로드 기능이 있으나 올라가는 폴더가 홈에 국한되어 있다.
  4. 결정적으로, 항상 인스턴스 리스트가 있는 gcp화면에 들어와야만 해당 UI를 실행할 수 있어 작업을 많이 할 때는 불편함이 있다.

VM이니 /etc/ssh/ssd_config 의 내용중 PubkeyAuthentication yes 로 설정하고 public key를 ~/.ssh/authorized_keys 에 추가하면 될것이라 생각하고 이런 과정을 거치다 보면 아마도 .ssh 폴더 아래의 내용들이 지워지는 것을 경험하게 된다.

구글에서는 공식적으로 다음의 두 가지 방법으로 연결하는 것을 권하고 있는데 둘 다 이해하기에는 시간이 부족해 우선 첫 번째 방법을 먼저 사용하고 있는 중이다.

  • Metadata-managed SSH connections (사용중)
  • OS Login-managed SSH connections

기존에 리눅스에 퍼블릭 키 기반으로 패스워드 입력없이 리눅스 커맨드쉘에 접근한 경험이 있는 사람 이라면 ssh public key 생성과정은 알고 있을 것이다. 키 생성후 접근하고자 하는 서버의 홈폴더 아래 .ssh/authorized_keys에 생성된 퍼블릭키를 복사 하는 대신 이 키를 GCP의 관리 페이지에 복사하는 것으로 간단히 해결이 된다. 구체적인 작업 순서는 다음과 같다.

  1. 로컬 장비에 ssh key 생성

2. GCP > Comput Engine > Setting > Metadata > SSH Keys 를 찾아가 + Add Item 이 보이는 버튼을 울러 방금 생성한 퍼블릭키값을 복사하여 붙여 넣고 저장

public key 를 복사해 넣을 때 마지막 필드의 값이 아이디인데 이 부분은 본인의 로컬 장비의 OS에서 로그인 되어 있는 아이디로 되어 있지만 이를 GCP의 로그인 id로 변경하여 넣어야 한다. 중요한 것은 이 키값을 어느 유저에게 연결해 줄 것이냐 이기 때문에 이런 수정이 필요하다.

3. 로컬장비에서 GCP의 VM instance에 ssh 로 연결

워낙 문서화가 잘 되어 있어 구글 클라우드의 안내문서를 보면 공식적인 가이드를 확인해 볼 수 있다.

이 글에서는 실패할만한 상황을 간접 경험하는 것 그리고 비슷한 상황에 처한 다른 사람의 경험으 확인 하는 정도로 활용하면 좋겠다.

--

--

Damianos

I believe wisely utilizing software makes our lives zesty and present relief, Amen