이 페이지에서는 gcloud
CLI를 사용하여 SSH(또는 기타 모든 TCP 프로토콜)를 사용하여 로컬 머신에서 워크스테이션에 연결하는 방법을 설명합니다.
Cloud Workstations는 터널을 사용하여 워크스테이션을 인터넷에 공개적으로 노출하지 않고도 로컬 머신의 포트와 워크스테이션의 포트 간에 TCP 트래픽을 전달합니다. 연결은 gcloud
CLI의 사용자 인증 정보를 통해 인증되고 대상 워크스테이션의 IAM 정책에 따라 승인됩니다.
TCP 터널이 로컬 포트와 워크스테이션 사이에 설정되면 이를 사용하여 SSH 클라이언트, curl 또는 TCP를 사용하는 기타 애플리케이션의 트래픽을 전달할 수 있습니다.
편의를 위해 Cloud Workstations는 단일 gcloud
CLI 명령어로 TCP 터널을 설정하고 SSH 클라이언트를 실행하는 gcloud workstations ssh
명령어를 제공합니다.
다른 모든 사용 사례의 경우 gcloud workstations start-tcp-tunnel
명령어를 사용하여 TCP 터널을 설정하고 터널을 사용할 애플리케이션(예:curl
)을 별도의 터널에서 실행합니다.
시작하기 전에
아직 연결할 워크스테이션이 없으면 워크스테이션을 설정합니다.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
연결하려는 워크스테이션에 대한 Cloud Workstations 사용자 IAM 역할이 있는지 확인합니다.
SSH를 사용하여 워크스테이션에 연결
워크스테이션에 안전한 SSH 연결을 설정하려면 TCP 터널을 시작하고 SSH 클라이언트를 실행하는 gcloud workstations ssh
명령어를 사용합니다.
명령어를 복사-붙여넣기 버퍼에 복사하려면
코드 샘플 복사를 클릭한 후 명령어를 로컬 터미널 창에 붙여넣습니다.gcloud workstations ssh \
--project=PROJECT_ID \
--region=REGION \
--cluster=CLUSTER_NAME \
--config=CONFIG_NAME \
--port=WORKSTATION_PORT \
--local-host-port=localhost:LOCAL_PORT \
WORKSTATION_NAME
다음 값을 바꿉니다.
PROJECT_ID
: 워크스테이션이 포함된 프로젝트의 Google Cloud 프로젝트 ID입니다. 생략하면 현재 프로젝트가 사용됩니다.REGION
: 워크스테이션 클러스터가 있는 리전입니다(예:us-central1
).CLUSTER_NAME
: 워크스테이션이 포함된 워크스테이션 클러스터의 이름입니다.CONFIG_NAME
: 이 워크스테이션이 포함된 워크스테이션 구성의 이름입니다.WORKSTATION_PORT
(선택사항): 트래픽을 전송할 워크스테이션의 포트입니다. 생략할 경우 트래픽은 포트22
로 전송됩니다. 사전 구성된 모든 Cloud Workstations 이미지에는 워크스테이션 포트22
에서 실행되는 SSH 서버가 포함되어 있습니다.LOCAL_PORT
(선택사항): 트래픽이 전송될 localhost 포트입니다. 유효한 포트 번호는1024
~65535
입니다.--local-host-port
플래그를 생략하거나0
포트를 지정하면 사용되지 않는 포트가 자동으로 선택됩니다.WORKSTATION_NAME
: 워크스테이션의 이름입니다.
선택사항: 플래그와 위치를 기본 ssh
구현에 전달하려면 명령어에 이중 대시(--
) 뒤에 추가합니다.
TCP 터널을 사용하여 임의의 TCP 트래픽을 워크스테이션으로 전달
ssh
이외의 TCP 애플리케이션을 사용하여 워크스테이션에 연결하려면 gcloud workstations start-tcp-tunnel
명령어를 사용합니다.
다음
gcloud
CLI 명령어를 실행하여 인증된 TCP 터널을 만듭니다.명령어를 복사-붙여넣기 버퍼에 복사하려면
코드 샘플 복사를 클릭한 후 명령어를 로컬 터미널 창에 붙여넣습니다.gcloud workstations start-tcp-tunnel \ --project=PROJECT_ID \ --region=REGION \ --cluster=CLUSTER_NAME \ --config=CONFIG_NAME \ --local-host-port=localhost:LOCAL_PORT \ WORKSTATION_NAME \ WORKSTATION_PORT
다음 값을 바꿉니다.
PROJECT_ID
: 워크스테이션이 포함된 프로젝트의 Google Cloud 프로젝트 ID입니다. 생략하면 현재 프로젝트가 사용됩니다.REGION
: 워크스테이션 클러스터가 있는 리전입니다(예:us-central1
).CLUSTER_NAME
: 워크스테이션이 포함된 워크스테이션 클러스터의 이름입니다.CONFIG_NAME
: 이 워크스테이션이 포함된 워크스테이션 구성의 이름입니다.LOCAL_PORT
(선택사항): 트래픽이 전송될 localhost 포트입니다. 유효한 포트 번호는1024
~65535
입니다.--local-host-port
플래그를 생략하거나0
포트를 지정하면 사용되지 않는 포트가 자동으로 선택됩니다.WORKSTATION_NAME
: 워크스테이션의 이름입니다.WORKSTATION_PORT
: 트래픽을 전송할 워크스테이션 포트입니다. 사전 구성된 모든 Cloud Workstations 이미지에는 워크스테이션 포트22
에서 실행되는 SSH 서버가 포함되어 있습니다.
gcloud
CLI 명령어는 워크스테이션에서 연결 테스트를 수행하고 터널을 열고 포트 번호를 표시합니다.Listening on port [LOCAL_PORT].
localhost:LOCAL_PORT
로 전송되는 모든 트래픽은 워크스테이션으로 전달됩니다. 포트는 로컬 컴퓨터에서 실행 중인 애플리케이션에서만 액세스할 수 있습니다.gcloud
CLI를 실행 상태로 두고 다른 터미널을 열어 워크스테이션에 연결되는 애플리케이션을 실행합니다.예를 들어 포트 WORKSTATION_PORT를 제공하는 워크스테이션에서 서버를 실행 중이고 이전 단계에서 로컬 포트 LOCAL_PORT와 워크스테이션 포트 WORKSTATION_PORT 사이에 트래픽을 전달하는 TCP 터널을 만든 경우, 로컬 머신에서
curl
을 실행하여 워크스테이션의 서버에 연결할 수 있습니다.curl localhost:LOCAL_PORT Hello, world!
완료되면 TCP 터널을 시작한 터미널로 돌아가 Control+C를 눌러
gcloud
CLI를 중단합니다.
다른 포트에서 SSH 서버 사용
커스텀 컨테이너 이미지는 모든 포트에서 SSH 서버를 사용할 수도 있습니다. gcloud
CLI 터널의 연결을 지원하려면 비밀번호 인증을 허용하고 타겟 사용자를 빈 비밀번호로 설정하도록 커스텀 SSH 서버를 구성해야 합니다.
Cloud Workstations는 Cloud IAM을 사용하여 승인된 트래픽만 SSH 서버로 전송합니다.
다음 단계
- 커스텀 컨테이너 이미지의 SSH 세션에서 컨테이너 환경 변수 설정
- 커스텀 컨테이너 이미지에 X11 전달 사용 설정