인스턴스에 연결


이 페이지에서는 Compute Engine에서 실행되는 Linux 및 Windows 인스턴스에 연결하는 기본적인 방법을 설명합니다. 타사 도구 사용 등 인스턴스에 연결하는 고급 방법은 고급 방법 주제를 참조하세요.

시작하기 전에

Linux 인스턴스에 연결

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

Console

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

    VM 인스턴스 페이지로 이동

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

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

gcloud

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

gcloud compute ssh --project PROJECT_ID --zone ZONE VM_NAME

다음을 바꿉니다.

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

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

gcloud compute ssh VM_NAME

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

SSH 키 저장 위치

VM 인스턴스에 맨 처음 연결하면 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 인스턴스를 맨 처음 부팅하기 전에 게스트 속성을 사용 설정해야 합니다.

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

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

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

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

      gcloud compute ssh --project PROJECT_ID --zone ZONE VM_NAME
      

      다음을 바꿉니다.

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

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

      gcloud compute ssh VM_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 VM_NAME --query-path "hostkeys/" --zone ZONE

다음을 바꿉니다.

  • VM_NAME: 인스턴스 이름입니다.
  • ZONE: 인스턴스가 있는 영역의 이름입니다.

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

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 인스턴스에 연결

Compute Engine은 Windows 인스턴스에 연결하는 여러 가지 방법을 지원합니다.

원격 데스크톱

Windows 인스턴스의 원격 데스크톱에 연결하는 가장 좋은 방법은 여러 가지 요인에 따라 다릅니다.

  • VM 인스턴스에 공개 IP 주소가 있고 방화벽 규칙이 RDP 액세스를 허용하는 경우 Google Cloud 브라우저 플러그인용 Chrome RDP를 사용하거나 Microsoft 원격 데스크톱 연결 앱과 같은 기본 RDP 클라이언트를 사용합니다.
  • VM 인스턴스에 공개 IP가 없고 Cloud VPN 또는 Cloud Interconnect를 사용하여 연결하는 경우 Microsoft 원격 데스크톱 연결 앱과 같은 기본 RDP 클라이언트를 사용하여 VM의 비공개 IP 주소에 연결할 수 있습니다.
  • 어디에서든 연결하는 경우 프로젝트에 IAP(Identity-Aware Proxy) TCP 전달을 사용 설정하는 것이 가장 좋습니다. 그런 다음 IAP 데스크톱(Windows) 또는 gcloud를 기본 RDP 클라이언트와 함께 사용하여 Windows 인스턴스에 연결합니다.
  • IAP(Identity-Aware Proxy) TCP 전달을 사용할 수 없는 경우 Chrome 원격 데스크톱을 사용하세요.

Windows 인스턴스에 연결

IAP 데스크톱

IAP 데스크톱은 Windows VM 인스턴스에 대한 여러 원격 데스크톱 연결을 관리할 수 있는 Windows 애플리케이션입니다. IAP 데스크톱은 IAP(Identity-Aware Proxy) TCP 전달을 사용하여 VM 인스턴스에 연결하며, VM 인스턴스에 공개 IP 주소를 필요로 하지 않습니다.

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

IAP 데스크톱을 사용하여 VM 인스턴스에 연결하려면 다음을 수행하세요.

  1. IAP 데스크톱에서 파일 > Google Cloud 프로젝트 추가를 선택합니다.

  2. 프로젝트의 ID 또는 이름을 입력하고 확인을 클릭합니다.

  3. 프로젝트 탐색기 창에서 연결하려는 VM 인스턴스를 마우스 오른쪽 버튼으로 클릭하고 연결을 선택합니다.

IAP 데스크톱

IAP 데스크톱에 대한 자세한 내용은 GitHub 프로젝트 페이지를 참조하세요.

원격 데스크톱 연결 앱

Windows에 포함된 Microsoft 원격 데스크톱 연결 앱을 사용하여 Windows 인스턴스에 연결할 수 있습니다.

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

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

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

  1. 아직 계정이 없는 경우 Windows 계정과 비밀번호를 만듭니다.

  2. Google Cloud Console의 VM 인스턴스 페이지에서 Windows 인스턴스의 IP 주소를 식별합니다.

    VM 인스턴스로 이동

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

    gcloud compute instances list
    
    • 인터넷을 통해 연결하려면 외부 IP 주소를 사용합니다.
    • VPN 또는 Cloud Interconnect를 사용하여 연결하려면 내부 IP 주소를 사용합니다.
  3. Windows 시스템에서 Microsoft Windows Remote Desktop Connection을 엽니다.

    mstsc 연결 창

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

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

Chrome 원격 데스크톱

Chrome 원격 데스크톱은 웹브라우저를 사용하여 다른 컴퓨터에 원격으로 액세스할 수 있는 서비스입니다. Chrome 원격 데스크톱은 Windows, macOS, Linux에서 작동하며 VM 인스턴스에 공개 IP 주소가 있어야 합니다.

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

Chrome 원격 데스크톱을 사용하여 VM 인스턴스에 연결하려면 다음을 수행하세요.

  1. 로컬 컴퓨터에서 Chrome 원격 데스크톱 웹사이트로 이동합니다.

  2. 아직 Google에 로그인하지 않은 경우 Chrome 원격 데스크톱 서비스를 설정하는 데 사용한 Google 계정으로 로그인합니다.

  3. 연결할 인스턴스를 선택합니다.

  4. 메시지가 표시되면 Chrome 원격 데스크톱 서비스를 설치할 때 생성한 PIN을 입력한 다음 화살표 버튼을 클릭하여 연결합니다.

Chrome RDP 플러그인

Google Cloud용 Chrome RDP는 Chrome 브라우저를 사용하여 Windows 인스턴스에 연결할 수 있는 타사 플러그인입니다. 플러그인은 Google Cloud Console과 통합됩니다. 플러그인을 설치한 후 Cloud Console에서 RDP 버튼을 사용하여 모든 Windows Server 인스턴스에 연결합니다.

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

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

  • Chrome OS에서 Windows VM에 연결하는 경우 Chromebook의 디스플레이 크기100%로 설정합니다.

Chrome RDP 플러그인을 사용하여 연결하려면 다음을 수행하세요.

  1. Cloud Console에서 VM 인스턴스 페이지로 이동하여 연결할 Windows 인스턴스를 찾습니다.

    VM 인스턴스로 이동

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

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

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

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

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

기타

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

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

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

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

  1. Google Cloud Console에서 VM 인스턴스 페이지로 이동하여 Windows 인스턴스의 IP 주소를 식별합니다.

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

    VM 인스턴스 페이지로 이동

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

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

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

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

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

특별 관리 콘솔

이 섹션에서는 대화형 직렬 콘솔을 사용하여 Windows 인스턴스의 특별 관리 콘솔(SAC)에 연결하는 방법을 설명합니다. 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 VM_NAME \
    --zone ZONE \
    --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 VM_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. 연결할 인스턴스의 사용자 이름, 도메인, 비밀번호를 입력합니다.

다음 단계