인스턴스에 연결

이 페이지에서는 Compute Engine Linux 인스턴스와 Compute Engine Windows 인스턴스에 연결하기 위한 가장 일반적인 방법 중 몇 가지를 설명합니다.

인스턴스에 연결하는 다른 방법은 다음을 참조하세요.

연결하기 전에 다음 내용을 검토하세요.

  • 인스턴스에 대한 사용자 액세스를 설정해야 합니다. 이 페이지에서는 Linux VM 사용 빠른 시작 가이드 또는 Windows VM 사용 빠른 시작 가이드에 따라 기본 사용자 액세스 생성을 포함한 인스턴스 생성을 완료했다고 가정합니다. 계속하기 전에 빠른 시작 가이드 중 적어도 하나를 완료합니다.

    인스턴스에 대한 사용자 액세스 관리를 알아보려면 인스턴스 액세스 관리를 참조하세요.

  • Linux 인스턴스의 경우 호스트 키를 인스턴스의 게스트 속성으로 저장할 수 있습니다. 자세한 내용은 호스트 키 저장을 참조하세요.

Linux 인스턴스에 연결

Google Cloud Console 또는 SDK의 gcloud 명령줄 도구로 Linux 인스턴스에 연결하려면 다음 탭 중 하나의 단계를 완료합니다.

이러한 기본 SSH 옵션이 적절하지 않다면 타사 도구를 사용하여 인스턴스에 연결하거나 외부 IP 주소가 없는 인스턴스에 연결해야 합니다.

Console

  1. GCP Console에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스 페이지로 이동

  2. 가상 머신 인스턴스 목록에서 연결할 인스턴스 행의 SSH를 클릭합니다.

    인스턴스 이름 옆에 있는 SSH 버튼

gcloud

gcloud compute ssh 명령어를 사용해 액세스 권한을 부여받은 인스턴스에 연결합니다.

gcloud compute ssh --project [PROJECT_ID] --zone [ZONE] [INSTANCE_NAME]

각 항목의 의미는 다음과 같습니다.

  • [PROJECT_ID]는 인스턴스가 포함된 프로젝트의 ID입니다.
  • [ZONE]은 인스턴스가 있는 영역의 이름입니다.
  • [INSTANCE_NAME]은 인스턴스의 이름입니다.

gcloud 명령줄 도구에 기본 속성을 설정해 둔 경우 이 명령어에서 --project 플래그와 --zone 플래그를 생략할 수 있습니다. 예를 들면 다음과 같습니다.

gcloud compute ssh [INSTANCE_NAME]

연결된 다음 터미널을 사용하여 Linux 인스턴스에서 명령어를 실행합니다. 작업을 마치면 exit 명령어를 사용해 인스턴스의 연결을 해제합니다.

SSH 키 위치

처음 연결하면 Compute Engine은 자동으로 SSH 키 쌍을 생성하고 다음 위치 중 한 곳에 저장합니다.

  • 기본적으로 Compute Engine은 생성된 키를 프로젝트 또는 인스턴스 메타데이터에 추가합니다.
  • 계정이 OS 로그인을 사용하도록 구성된 경우 Compute Engine은 생성된 키를 사용자 계정에 저장합니다.

이 문서에 설명된 대로 연결하면 SSH 키가 저장된 곳을 알 필요가 없지만, 고급 방법을 사용하여 인스턴스에 연결에 설명된 다른 방법 또는 고급 방법을 사용해 연결하려면 SSH 키가 저장된 곳을 알아야 합니다.

호스트 키 저장

호스트 키는 특정 호스트 또는 머신을 식별하는 키 쌍입니다. 원격 호스트에 연결할 때 호스트 키는 의도한 머신에 연결 중인지 확인하는 데 사용됩니다.

gcloud compute ssh를 사용해 Linux 인스턴스에 연결하는 경우, 게스트 속성으로 호스트 키를 저장해 보안 레이어를 추가할 수 있습니다.

SSH 호스트 키를 게스트 속성으로 저장하면 MITM(man-in-the-middle) 공격과 같은 취약성으로부터 보호하여 연결 보안을 향상시킵니다. VM 인스턴스의 초기 부팅 시 게스트 속성이 사용 설정되어 있는 경우 Compute Engine은 생성된 호스트 키를 게스트 속성으로 저장합니다. Compute Engine은 초기 부팅시 저장된 호스트 키를 사용하여 VM 인스턴스에 대한 모든 후속 연결을 확인합니다.

지원되는 운영체제

게스트 속성으로 호스트 키를 저장하는 작업은 다음 운영체제에서 지원됩니다.

  • Debian
  • Ubuntu
  • RHEL(Red Hat Enterprise Linux)
  • CentOS
  • SLES(SUSE Linux Enterprise Server)

호스트 키는 VM 인스턴스의 처음 부팅 시에만 게스트 속성에 쓸 수 있습니다. 게스트 속성에 호스트 키를 작성하려면 VM 인스턴스를 처음으로 부팅하기 전에 게스트 속성을 사용 설정해야 합니다.

게스트 속성으로 호스트 키를 저장하려면 다음 단계를 완료합니다.

  1. VM 인스턴스를 처음 부팅하기 전에 게스트 속성을 사용 설정합니다. 인스턴스 생성 시 일부 VM 인스턴스 또는 전체 프로젝트에서 게스트 속성 사용을 설정할 수 있습니다. 게스트 속성을 사용하려면 인스턴스에서 게스트 속성 사용 설정을 참조하세요.
  2. gcloud compute SSH를 사용하여 인스턴스에 연결합니다.

    1. 최신 버전의 gcloud 명령줄 도구가 있어야 합니다.

      gcloud components update
      
    2. 인스턴스에 연결합니다.

      gcloud compute ssh --project [PROJECT_ID] --zone [ZONE] [INSTANCE_NAME]
      

      각 항목의 의미는 다음과 같습니다.

      • [PROJECT_ID]는 인스턴스가 포함된 프로젝트의 ID입니다.
      • [ZONE]은 인스턴스가 있는 영역의 이름입니다.
      • [INSTANCE_NAME]은 인스턴스의 이름입니다.

      gcloud 명령줄 도구에 기본 속성을 설정해 둔 경우 이 명령어에서 --project 플래그와 --zone 플래그를 생략할 수 있습니다. 예를 들면 다음과 같습니다.

      gcloud compute ssh [INSTANCE_NAME]
      
    3. 스타트업 메시지를 검토합니다. 예를 들어 Debian 운영체제에서는 다음과 같은 메시지를 표시할 수 있습니다.

      Writing 3 keys to [YOUR_HOME_DIRECTORY]/.ssh/google_compute_known_hosts
      Linux host-key-2 4.9.0-9-amd64 #1 SMP Debian 4.9.168-1+deb9u3 (2019-06-16) x86_64
  3. 호스트 키가 저장되었는지 확인합니다.

호스트 키가 게스트 속성으로 저장되었는지 확인

호스트 키가 게스트 속성으로 저장되었는지 확인하려면 직렬 포트 또는 인스턴스의 호스트 키 값을 검토합니다.

옵션 1: 직렬 포트 검토

  1. 직렬 포트 출력에 액세스하려면 직렬 포트 출력 보기를 참조하세요.
  2. 직렬 포트 1을 선택합니다.
  3. 다음 메시지를 검색합니다.

    INFO Wrote ssh-rsa host key to guest attributes
    

    이미지가 지원되는 운영 체제를 사용하지만 게스트 속성이 첫 번째 VM 부팅 전에 활성화되지 않은 경우 다음 메시지가 표시될 수 있습니다.

    Unable to write ssh-rsa host key to guest attributes
    

    호스트 키가 이 인스턴스에 게스트 속성으로 저장되지 않았음을 의미합니다. 인스턴스를 새로 만들어 호스트 키를 저장하려면 인스턴스를 처음으로 부팅하기 전에 게스트 속성을 사용 설정해야 합니다.

옵션 2: 호스트 키 값 검토

gcloud 명령줄 도구를 사용하여 SSH 키가 게스트 속성에 기록되는지 확인할 수 있습니다.

 gcloud compute instances get-guest-attributes [INSTANCE_NAME] --query-path "hostkeys/" --zone [ZONE]

각 항목의 의미는 다음과 같습니다.

  • [ZONE]은 인스턴스가 있는 영역의 이름입니다.
  • [INSTANCE_NAME]은 인스턴스의 이름입니다.

다음과 유사한 결과가 출력됩니다.

NAMESPACE  KEY                  VALUE
hostkeys   ecdsa-sha2-nistp256  AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBBJAGpTm
                                V3mFxBTHK1NIu9a7kVQWaHsZVaFUsqF8cLxQRQ+N96/Djiiuz1tucHQ8vBTJI=
hostkeys   ssh-ed25519          AAAAC3NzaC1lZDI1NTE5AAAAIM/WYBn3jIEW5t3BZumx0X/Htm61J6S9FcU8L
hostkeys   ssh-rsa              AAAAB3NzaC1yc2EAAAADAQABAAABAQDU3jReR/MoSttlWYfauW6qEqS2dhe5
                                Zdd3guYk2H7ZyxblNuP56nOl/IMuniVmsFa9v8W6MExViu6G5Cy4iIesot09
                                1hsgkG0U7sbWrXM10PQ8pnpI3B5arplCiEMhRtXy64rlW3Nx156bLdcxv5l+
                                7Unu4IviKlY43uqqwSyTv+V8q4ThpQ9dNbk1Gg838+KzazljzHahtbIaE1rm
                                I0L1lUqKiKLSLKuBgrI2Y/WSuqvqGEz+bMH7Ri4ht+7sAwykph6FbOgKqoBI
                                hVWBo38/Na/gEuvtmgULUwK+xy9zWg9k8k/Qtihc6El9GD9y

Windows 인스턴스에 연결

Google Cloud Console 또는 그래픽 사용자 인터페이스를 통해 원격 데스크톱 프로토콜(RDP)을 사용하여 Windows 인스턴스에 연결할 수 있습니다.

원격 데스크톱

연결하기 전에 Windows 인스턴스 비밀번호를 만들어 다음 단계에서 입력할 수 있도록 준비해야 합니다.

Chrome 원격 데스크톱

Chrome 원격 데스크톱을 사용하여 연결하기 전에 다음 기본 요건을 충족하는지 확인하세요.

  • VM 인스턴스에 공개 IP 주소가 있습니다.
  • 방화벽 규칙은 포트 3389를 사용하여 클라이언트의 공개 IP 주소에서 인스턴스로 보내는 TCP 인그레스 트래픽을 허용합니다.

Chrome 원격 데스크톱을 사용하여 연결하려면 다음 단계를 따르세요.

  1. GCP용 Chrome RDP 또는 원격 데스크톱을 사용하여 인스턴스에 연결합니다. 자세한 내용은 다른 탭을 참조하세요.

  2. VM에서 Chrome을 다운로드하고 설치합니다.

  3. Chrome 원격 데스크톱을 다운로드 및 설치합니다.

  4. 확장 프로그램에서 제공하는 안내에 따라 VM 인스턴스를 호스트로 설정합니다.

  5. 인스턴스의 연결을 해제합니다.

  6. Chrome 원격 데스크톱을 사용하여 VM 인스턴스에 연결하려는 머신에서 Chrome 원격 데스크톱을 다운로드 및 설치합니다.

  7. Chrome 원격 데스크톱을 설치할 때 VM 인스턴스에서 사용한 것과 동일한 Google 계정으로 Chrome에 로그인해야 합니다.

  8. VM 인스턴스가 원격 기기 목록에 표시됩니다. 기기를 클릭하여 연결합니다.

GCP용 Chrome RDP

GCP용 Chrome RDP를 사용하여 연결하기 전에 다음 기본 요건을 충족하는지 확인하세요.

  • VM 인스턴스에 공개 IP 주소가 있습니다.
  • 방화벽 규칙은 포트 3389를 사용하여 클라이언트의 공개 IP 주소에서 인스턴스로 보내는 TCP 인그레스 트래픽을 허용합니다.
  1. Google Cloud용 Chrome RDP 확장 프로그램을 설치합니다.

  2. Cloud Console의 VM 인스턴스 페이지로 이동하여 연결하려는 Windows 인스턴스를 찾습니다.

    VM 인스턴스 페이지로 이동

  3. 연결하려는 인스턴스의 RDP 버튼을 클릭합니다. Chrome RDP 확장 프로그램이 열립니다.

  4. 도메인, 사용자 이름, 비밀번호를 입력한 다음 확인을 클릭하여 연결합니다.

    필수 옵션이 설정된 인스턴스 생성 창

    인스턴스에 도메인이 구성되지 않은 경우 도메인 필드를 비워둘 수 있습니다.

  5. 메시지가 표시되면 계속을 눌러서 인증서를 수락합니다.

원격 데스크톱

원격 데스크톱 클라이언트를 사용하여 연결하기 전에 다음 기본 요건 중 하나를 충족하는지 확인하세요.

  • VM 인스턴스에 공개 IP 주소가 있고 방화벽 규칙이 포트 3389를 사용하여 클라이언트의 공개 IP 주소에서 인스턴스로 보내는 TCP 인그레스 트래픽을 허용합니다.
  • 로컬 네트워크가 사용자의 VPC에 VPN 또는 Cloud Interconnect를 통해 연결되고 방화벽 규칙이 포트 3389를 사용하여 클라이언트의 공개 IP 주소에서 인스턴스로 보내는 TCP 인그레스 트래픽을 허용합니다.

Microsoft Windows 원격 데스크톱을 사용하여 연결하려면 다음을 수행하세요.

  1. VM 인스턴스 페이지에서 Windows 인스턴스의 IP 주소를 확인합니다.

    • 인터넷을 통해 연결하려면 외부 IP 주소를 사용합니다.
    • VPN 또는 Cloud Interconnect를 사용하여 연결하려면 내부 IP 주소를 사용합니다.

    VM 인스턴스 페이지로 이동

    또는 gcloud 명령줄 도구에서 instances list 명령어를 실행해 IP 주소를 찾습니다.

    gcloud compute instances list
    
  2. Windows 시스템에서 Microsoft Windows Remote Desktop Connection을 엽니다.

    mstsc 연결 창

  3. 컴퓨터 필드에 IP 주소를 입력합니다. 연결을 클릭합니다.

  4. 사용자 이름과 비밀번호를 입력합니다. OK(확인)를 클릭하여 연결합니다.

기타

Android, iOS, Mac용으로 개발된 클라이언트 등 다른 RDP 클라이언트를 사용하여 Windows VM 인스턴스에 연결할 수 있습니다.

연결하기 전에 다음 기본 요건 중 하나를 충족하는지 확인하세요.

  • VM 인스턴스에 공개 IP 주소가 있고 방화벽 규칙이 포트 3389를 사용하여 클라이언트의 공개 IP 주소에서 인스턴스로 보내는 TCP 인그레스 트래픽을 허용합니다.
  • 로컬 네트워크가 사용자의 VPC에 VPN 또는 Cloud Interconnect를 통해 연결되고 방화벽 규칙이 포트 3389를 사용하여 클라이언트의 공개 IP 주소에서 인스턴스로 보내는 TCP 인그레스 트래픽을 허용합니다.

다른 RDP 클라이언트를 사용하여 연결하려면 다음을 수행합니다.

  1. VM 인스턴스 페이지에서 Windows 인스턴스의 IP 주소를 확인합니다.

    • 인터넷을 통해 연결하려면 외부 IP 주소를 사용합니다.
    • VPN 또는 Cloud Interconnect를 사용하여 연결하려면 내부 IP 주소를 사용합니다.

    VM 인스턴스 페이지로 이동

    또는 gcloud 명령줄 도구에서 instances list 명령어를 실행해 IP 주소를 찾습니다.

    gcloud compute instances list
    
  2. 클라이언트의 설치 안내에 따라 지원되는 클라이언트를 설치합니다.

  3. 인스턴스의 IP 주소를 사용하여 연결하고 인스턴스의 사용자 이름과 비밀번호를 사용하여 인증합니다.

공식적으로 지원되는 클라이언트 목록은 Microsoft의 원격 데스크톱 클라이언트 문서를 참조하세요.

RDP 연결 문제가 있는 경우 RDP 문제 해결 페이지를 참조하세요.

특별 관리 콘솔

이 섹션에서는 대화형 직렬 콘솔을 사용하여 Windows 인스턴스의 SAC(Special Administrative Console)에 연결하는 방법을 설명합니다. 원격 데스크톱을 통해 연결할 수 없는 경우 SAC를 사용하여 Windows 인스턴스 문제를 해결할 수 있습니다.

연결하기 전에 Windows 인스턴스 비밀번호를 만들고 준비가 되었는지 확인하세요.

대화형 직렬 콘솔을 사용하여 Windows 인스턴스에 연결하려면 다음 탭 중 하나의 단계를 완료하세요.

Console

Cloud Console을 통해 대화형 직렬 콘솔을 사용하여 Windows 인스턴스에 연결하려면 다음을 수행하세요.

  1. Cloud Console에서 VM 인스턴스 페이지를 열고 인스턴스 이름을 클릭합니다. VM 인스턴스 세부정보 페이지가 열립니다.

    VM 인스턴스 페이지로 이동

  2. 수정을 클릭합니다. 원격 액세스 아래에서 직렬 포트 연결 사용 설정을 선택합니다. 이렇게 하면 이 인스턴스에서 대화형 직렬 콘솔이 사용 설정됩니다.

    인스턴스 세부정보 편집 화면 설정

    또는 이러한 설정을 프로젝트의 모든 인스턴스에 적용하려면 프로젝트 전체 커스텀 메타데이터를 설정합니다.

    인스턴스 메타데이터 업데이트에 대한 자세한 내용은 인스턴스 메타데이터 저장 및 검색을 참조하세요.

  3. 저장을 클릭한 다음 페이지 맨 위로 돌아갑니다.

  4. 원격 액세스 아래에서 직렬 콘솔에 연결 옆의 드롭다운 목록을 클릭하고 직렬 포트 2를 선택합니다. Windows Special Administrative Console(SAC)이 열립니다.

  5. SAC> 프롬프트에서 cmd를 실행하면 새 채널을 만들 수 있습니다. SAC는 Cmd001 같은 채널 이름을 반환합니다.

  6. ch -sn [CHANNEL_NAME]을 실행하고 아무 키나 눌러 채널에 연결합니다. 예를 들면 다음과 같습니다.

    SAC> cmd
    The Command Prompt session was successfully launched.
    SAC>
    EVENT:   A new channel has been created.  Use "ch -?" for channel help.
    Channel: Cmd0001
    SAC> ch -sn cmd0001
    Press any key to confirm connection to the channel.
    
  7. 연결할 인스턴스의 사용자 이름, 도메인, 비밀번호를 입력합니다.

gcloud

gcloud 명령줄 도구를 통해 대화형 직렬 콘솔을 사용하여 Windows 인스턴스에 연결하려면 다음을 수행합니다.

  1. 로컬 운영체제의 Cloud SDK를 아직 다운로드하지 않은 경우 다운로드하여 설치합니다. Cloud SDK 설치를 참조하세요.

  2. Cloud SDK를 시작합니다.

  3. 다음 명령어를 실행하여 직렬 포트 연결을 허용하도록 인스턴스를 구성합니다.

    gcloud compute instances add-metadata [INSTANCE_NAME]
    --metadata=serial-port-enable=1
    

    선택사항: 설정을 프로젝트의 모든 인스턴스에 적용하려면 다음 Cloud SDK 명령어를 대신 실행합니다.

    gcloud compute project-info add-metadata
    --metadata=serial-port-enable=1
    

    프로젝트 전체의 커스텀 메타데이터에 대한 자세한 내용은 프로젝트 전체의 커스텀 메타데이터 설정을 참조하세요.

    메타데이터 업데이트에 대한 자세한 내용은 인스턴스 메타데이터 업데이트를 참조하세요.

  4. 다음 gcloud 명령어를 실행하여 대화형 세션을 시작합니다.

    gcloud compute connect-to-serial-port [INSTANCE_NAME] --port=2
    

    SAC 대화형 세션

  5. SAC> 프롬프트에서 cmd를 실행하면 새 채널을 만들 수 있습니다. SAC는 Cmd001 같은 채널 이름을 반환합니다.

  6. ch -sn [CHANNEL_NAME]을 실행하고 아무 키나 눌러 채널에 연결합니다. 예를 들면 다음과 같습니다.

    SAC> cmd
    The Command Prompt session was successfully launched.
    SAC>
    EVENT:   A new channel has been created.  Use "ch -?" for channel help.
    Channel: Cmd0001
    SAC> ch -sn cmd0001
    Press any key to confirm connection to the channel.
    
  7. 연결할 인스턴스의 사용자 이름, 도메인, 비밀번호를 입력합니다.

다음 단계