이 문서에서는 Cloud FTP에서 내부 SFTP 서버에 연결하는 방법을 보여줍니다. SFTP 서버를 사용하면 Cloud Storage와 파일을 안전하게 주고받을 수 있습니다. 표준 SFTP 명령어와 SFTP 클라이언트를 사용하여 Cloud Storage 버킷에서 데이터를 업로드하거나 다운로드할 수 있습니다.
내부 서버는 Private Service Connect를 사용하여 가상 프라이빗 클라우드 (VPC) 네트워크 내에서만 액세스할 수 있습니다. 배경 정보는 VPC 개요 및 Private Service Connect 개요를 참조하세요.
시작하기 전에
다음 섹션의 필수 단계를 완료합니다.
VPC 네트워크 구성
이 문서의 단계에서는 VPC 네트워크가 있다고 가정합니다. VPC 네트워크를 만드는 단계는 VPC 네트워크 만들기 및 관리 를 참조하세요.
엔드포인트와 동일한 네트워크의 Compute Engine 인스턴스 또는 서비스에서 Private Service Connect 엔드포인트의 비공개 IP 주소에 연결할 수 있습니다. 이러한 연결을 허용하도록 네트워크를 구성해야 할 수도 있습니다. 예를 들어 Compute Engine 클라이언트 VM을 사용하여 엔드포인트에 연결하는 경우 VM 인스턴스에 대한 수신 SSH 연결을 허용하는 방화벽 규칙을 추가합니다.
Private Service Connect 엔드포인트 구성
내부 SFTP 서버에 처음 연결하기 전에 다음 단계를 완료하세요.
서버에 인증하는 데 사용할 SSH 키 쌍을 생성합니다.
어떤 키 형식이 필요한가요?
필요한 키 형식은 SFTP 서버에 연결하는 데 사용하는 클라이언트에 따라 다릅니다. 자세한 내용은 지원되는 SFTP 클라이언트를 참조하세요.
PEM 형식
-
OpenSSH 키 쌍 (PEM 형식)을 만들려면
ssh-keygen유틸리티를 사용합니다.SFTP 서버에 연결할 클라이언트 머신에서 다음 명령어를 실행합니다.
ssh-keygen -t rsa -b 4096 -f ~/.ssh/KEY_PAIR_NAME
KEY_PAIR_NAME을 키 쌍의 이름(예:sftp_user_key)으로 바꿉니다. -
공개 키를 추출합니다.
cat ~/.ssh/KEY_PAIR_NAME.pub
PPK 형식
-
PuTTY 키 쌍 (PPK 형식)을 만들려면
PuTTYgen도구를 사용합니다.SFTP 서버에 연결할 클라이언트 머신에서 다음 명령어를 실행합니다.
puttygen -t rsa -b 4096 -o KEY_PAIR_NAME.ppk
KEY_PAIR_NAME을 키 쌍의 이름(예:sftp_user_key)으로 바꿉니다. -
공개 키를 추출합니다.
puttygen -L KEY_PAIR_NAME.ppk
Cloud FTP 관리자에게 공개 키를 제공합니다. 관리자가 SFTP 사용자 계정을 만들고 서버에 사용자를 추가합니다.
-
Cloud FTP 관리자에게 서버에 연결하는 데 필요한 다음 정보를 요청합니다.
- 서버의 서비스 연결 URI
- SFTP 사용자 이름
- (선택사항) 서버의 키 지문
Private Service Connect 엔드포인트를 만드는 단계를 따릅니다 . 다음 정보를 제공합니다.
- 대상: 게시된 서비스 를 선택합니다.
- 대상 서비스: 서비스 연결의 URI입니다. 서비스
연결 URI는
projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME형식입니다. - 이름: 엔드포인트의 이름입니다. 서비스 연결 URI의
SERVICE_PROJECT와 동일한 값을 사용합니다. - 네트워크: 엔드포인트의 VPC 네트워크입니다.
- 서브네트워크: 엔드포인트의 서브네트워크입니다.
- IP 주소: 엔드포인트의 IP 주소를 만듭니다.
- 서비스 연결과 다른 리전에서 클라이언트 VM을 만드는 경우 전역 액세스 사용 설정 을 선택합니다.
엔드포인트의 IP 주소를 적어 둡니다.
엔드포인트와 동일한 네트워크에서 Compute Engine 인스턴스 또는 서비스와 같은 클라이언트를 구성하여 인스턴스 또는 서비스가 엔드포인트의 비공개 IP 주소에 연결할 수 있도록 합니다.
예를 들어 Compute Engine 인스턴스를 클라이언트 VM으로 사용하려면 다음 단계를 따르세요.
Compute Engine 인스턴스가 아직 없는 경우 인스턴스를 만드는 단계를 따릅니다. 다음 정보를 제공합니다.
- 리전: 엔드포인트를 만들 때 전역 액세스를 사용 설정하지 않은 경우 SFTP 서버의 서비스 연결과 동일한 리전을 선택합니다.
- 네트워크 인터페이스: 엔드포인트와 동일한 VPC 네트워크 및 서브네트워크를 선택합니다.
클라이언트 VM의 이름과 영역을 적어 둡니다.
비공개 키를 클라이언트 VM으로 전송합니다.
gcloud compute scp ~/.ssh/KEY_PAIR_NAME CLIENT_VM_NAME:~/.ssh/KEY_PAIR_NAME \ --zone=CLIENT_VM_ZONE --project=PROJECT_ID
다음을 바꿉니다.
CLIENT_VM_NAME: 클라이언트 VM의 이름입니다.CLIENT_VM_ZONE: 클라이언트 VM의 영역입니다.PROJECT_ID: 프로젝트의 프로젝트 ID 또는 번호입니다.Google Cloud
내부 SFTP 서버에 연결
OpenSSH
-
Private Service Connect 엔드포인트와 동일한 VPC 네트워크에서 클라이언트 Compute Engine 인스턴스 또는 서비스에 연결합니다.
예를 들어 Compute Engine 인스턴스를 클라이언트 VM으로 사용하는 경우 SSH를 사용하여 클라이언트 VM에 연결합니다.
gcloud compute ssh CLIENT_VM_NAME --zone=CLIENT_VM_ZONE --project=PROJECT_ID
다음을 바꿉니다.
CLIENT_VM_NAME: 클라이언트 VM의 이름입니다.CLIENT_VM_ZONE: 클라이언트 VM의 영역입니다.PROJECT_ID: 프로젝트 Google Cloud 의 프로젝트 ID 또는 번호입니다.
-
OpenSSH를 사용하여 SFTP 서버에 연결합니다.
sftp -i ~/.ssh/KEY_PAIR_NAME USERNAME@IP_ADDRESS
다음을 바꿉니다.
KEY_PAIR_NAME: SSH 키 쌍의 이름(예:sftp_user_key)입니다.USERNAME: SFTP 사용자 이름입니다.IP_ADDRESS: Private Service Connect 엔드포인트의 IP 주소입니다.
서버에 처음 연결하는 경우
The authenticity of host 'HOSTNAME (IP_ADDRESS)' can't be established, 서버의 키 지문과 같은 메시지가 표시될 수 있습니다. 서버를 확인하려면 관리자가 제공한 키 지문을 입력합니다. 또는 서버를 신뢰하는 경우yes를 입력하여 신뢰할 수 있는 서버 목록에 서버를 추가합니다.
파일 전송이 완료되면 exit를 입력하여 클라이언트 VM에서 연결을 해제합니다.
PuTTY
-
Private Service Connect 엔드포인트와 동일한 VPC 네트워크에서 클라이언트 Compute Engine 인스턴스 또는 서비스에 연결합니다.
예를 들어 Compute Engine 인스턴스를 클라이언트 VM으로 사용하는 경우 SSH를 사용하여 클라이언트 VM에 연결합니다.
gcloud compute ssh CLIENT_VM_NAME --zone=CLIENT_VM_ZONE --project=PROJECT_ID
다음을 바꿉니다.
CLIENT_VM_NAME: 클라이언트 VM의 이름입니다.CLIENT_VM_ZONE: 클라이언트 VM의 영역입니다.PROJECT_ID: 프로젝트 Google Cloud 의 프로젝트 ID 또는 번호입니다.
-
PuTTY를 사용하여 SFTP 서버에 연결합니다.
psftp -i ~/.ssh/KEY_PAIR_NAME.ppk USERNAME@IP_ADDRESS
다음을 바꿉니다.
KEY_PAIR_NAME: SSH 키 쌍의 이름(예:sftp_user_key)입니다.USERNAME: SFTP 사용자 이름입니다.IP_ADDRESS: Private Service Connect 엔드포인트의 IP 주소입니다.
서버에 처음 연결하는 경우 호스트 키 가 캐시되지 않았다는 메시지가 표시될 수 있습니다. 관리자가 제공한 키 지문을 확인하고 선택적으로 키를 캐시에 추가합니다. 그런 다음 연결을 진행합니다.