Cloud/GCP

[GCP/OS] GCP compute engine SSH key 발급 및 접속

달빛궁전- 2024. 2. 25. 20:05

 

회사에서 간단하게 작성했던 기술 토막글 이었는데, 생각보다 처음에 VM 접속시 Web Console에서 SSH가 아닌 Local -> VM 접속하는데 있어 방안을 모르는 분들도 있어, 정리하는 차원에서 업로드

 

목적 : GCP에서는 SSH key 방식을 통한 접근방법을 기본적으로 지원합니다.
ID/Password로 접근시에는 OS에서 sshd config을 변경해주어야합니다.
GCP Console로 접근하는 방안은 편하지만, 시스템 운영자, 어플리케이션 담당자들에게 GCP Console 접근 권한을 주는 것은 IAM을 사용하여 권한을 적절하게 주어야 하고, 정책적으로 GCP관리자에 외에는 GCP Console에 접근 불가할 수도 있습니다.
하여 본 문서에서는 ssh key 발급을 통해 비공개키를 가지고 GCP상에 존재하는 GCE에 접근하는 방법을 작성합니다.

 

  • SSH key접속에 대한 GCP Docs

https://cloud.google.com/compute/docs/connect/create-ssh-keys?hl=ko

 

SSH 키 만들기  |  Compute Engine 문서  |  Google Cloud

SSH 키 생성 방법

cloud.google.com

 

  • SSHKey 생성(Gen) 방법
    Mac, Linux는 터미널, Windows는 CMD, Powershell을 이용하여 아래의 명령어로 생성합니다.
ssh-keygen -t rsa -f ~/.ssh/KEY_FILENAME -C USERNAME -b 2048

 

ssh-keygen 옵션별 설명입니다.
상세내용은 ssh-keygen --help 확인할 수 있습니다.

-t : dsa, ecdsa, rsa등 암호화 방법을 정합니다. 기본 값은 rsa 이므로, GCP 접속용을 만든다면 해당 옵션을 빼도 무방합니다.
테스트시 ecdsa암호화도 GCP에서는 적용됩니다.
-f : 키값 저장위치 기본설정은 ~/.ssh/ 입니다.
-C : 필수로 해야되는 옵션입니다. Comment를 작성하는 옵션이지만, 해당 옵션에 작성하면 ID로 인식됩니다.
-b : 생성할 키의 비트 수를 지정합니다. 미설정시 기본 값은 3072입니다. 2048 이상이면 문제 없습니다.

ssh-keygen


키를 만들때 passphrase부분은 공란으로 넘어갑니다.
입력시에는 OS login시의 패스워드가 아닌, Key의 Password를 입력해야합니다.
선택한 암호화 값으로 암호화 되면 파일이 생성되고 마무리됩니다.
위의 예시화면에서는 RSA 3072로 생성됨을 확인 할 수 있습니다.

  • GCP 적용
    신규 생성이나 수정 모두 동일합니다.
    메뉴는 아래와 같이 접근합니다.
    Compute Engine > VM 선택 > 보안 및 액세스 > SSH키 >

ssh key-gen으로 생성한 파일 중 pub (공개키) 파일을 cat, 메모장으로 열어서 내용을 확인합니다.

해당 내용을 SSH 키에 입력합니다.



입력 후 수정을 완료하면, 자동으로 사용자 이름과 키를 구분하여 아래와 같이 보여줍니다.

  • 접속
    ssh 명령어로는 아래와 같이 접속하며, CRT, Putty등의 접속 툴을 사용한다면 key가 있는 값을 지정합니다.
ssh -i "ssh private key 위치" id@serverIP -p"port"

 

  • 옵션
-i : ssh private key 위치를 지정합니다.
-p : 기본 포트를 변경하였을 경우 선택후 변경된 포트번호를 입력합니다.


cat이나 메모장으로 PRIVATE KEY를 확인하면 아래와 같이 보여집니다.
첫줄과 마지막줄에 PRIVATE KEY로 되어있으므로, 접속키가 햇갈린다면 파일을 열어 확인합니다.

  • 응용 - 템플릿을 사용하여 자동등록하기
    템플릿에 등록해두고, 신규로 생성되는 VM은 별도로 설정할 필요 없이 SSH Key를 적용할 수 있습니다.
    Compute Engine > 인스턴스 템플릿 > 템플릿 생성
    고급>보안> “수동으로 생성된 SSH키 추가”

이후로는 신규로 생성되는 VM에는 자동으로 Key가 적용됩니다.

  • 응용 - 메타데이터 사용
    Compute Engine > 설정 > 메타데이터 > SSH키

메타데이터에 등록하면, 해당 프로젝트의 모든 인스턴스에 접속 가능

 


메타데이터에 등록하면, 해당 프로젝트에 등록된 모든 인스턴스에 적용됩니다.
전부 적용되므로 유의해서 사용하여야 합니다.

  • 유의사항
    문서에서 작업한 것은 “수동 키 관리” 입니다.
    저장된 SSH키로 접속하면 sudo 액세스 권한이 있습니다.
    그만큼 권한이 크므로, 관리가 필요합니다.

즉 퇴사, 부서이동등 권한 조정이 필요할때 지체말고 바로 키를 삭제해야한다.