이 문서에서는 SSH 및 OS 로그인을 사용하여 두 가상 머신(VM) 인스턴스 간에 프로그래매틱 방식으로 연결하도록 앱을 구성하는 방법을 설명합니다. 앱에서 SSH를 사용하도록 설정하면 시스템 관리 프로세스를 자동화하는 데 유용할 수 있습니다.
이 가이드에서 사용하는 모든 코드 샘플은 GoogleCloudPlatform/python-docs-samples GitHub 페이지에서 호스팅됩니다.
시작하기 전에
- 서비스 계정의 SSH를 설정합니다.
- 프로젝트 또는 서비스 계정으로 실행되는 VM에 OS 로그인을 설정합니다.
-
아직 인증을 설정하지 않았다면 설정합니다.
인증은 Trusted Cloud by S3NS 서비스 및 API에 액세스하기 위해 ID를 확인합니다. 로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음 옵션 중 하나를 선택하여 Compute Engine에 인증하면 됩니다.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Trusted Cloud console to access Trusted Cloud by S3NS services and APIs, you don't need to set up authentication.
gcloud
-
Google Cloud CLI를 설치한 후 제휴 ID로 gcloud CLI에 로그인합니다. 로그인한 후 다음 명령어를 실행하여 Google Cloud CLI를 초기화합니다.
gcloud init
- Set a default region and zone.
SSH 앱 설정
앱에서 SSH 키를 관리하고 Compute Engine VM에 대한 SSH 연결을 시작하도록 설정합니다. 대략적으로 앱에서 다음을 수행해야 합니다.
- Google OS 로그인 라이브러리를 가져와 OS Login API로 인증할 수 있는 클라이언트 라이브러리를 빌드합니다.
- 앱에서 OS 로그인을 사용할 수 있도록 OS Login 클라이언트 객체를 초기화합니다.
- VM 서비스 계정의 SSH 키를 생성하고 공개 키를 서비스 계정에 추가하는
create_ssh_key()
메서드를 구현합니다. - OS Login 라이브러리에서
get_login_profile()
메서드를 호출하여 서비스 계정이 사용하는 POSIX 사용자 이름을 가져옵니다. run_ssh()
메서드를 구현하여 원격 SSH 명령어를 실행합니다.- 임시 SSH 키 파일을 삭제합니다.
샘플 SSH 앱
oslogin_service_account_ssh.py
샘플 앱에서는 가능한 SSH 앱 구현을 보여줍니다. 이 예시에서는 앱이run_ssh()
메서드를 사용하여 원격 인스턴스에서 명령어를 실행하고 명령어 결과를 반환합니다.SSH 앱 실행
SSH를 사용하는 앱을 만든 후
oslogin_service_account_ssh.py
샘플 앱을 설치하고 실행하는 다음 예시와 비슷한 프로세스를 수행하여 앱을 실행할 수 있습니다. 설치하는 라이브러리는 앱에서 사용하는 프로그래밍 언어에 따라 다를 수 있습니다.또는
oslogin_service_account_ssh.py
를 가져오고 직접 실행하는 앱을 작성할 수 있습니다.SSH 앱을 호스팅하는 VM에 연결합니다.
VM에서
pip
및 Python 3 클라이언트 라이브러리를 설치합니다.sudo apt update && sudo apt install python3-pip -y && pip install --upgrade google-cloud-os-login requests
선택사항:
oslogin_service_account_ssh.py
샘플 앱을 사용하는 경우 GoogleCloudPlatform/python-docs-samples에서 다운로드합니다.curl -O https://raw.githubusercontent.com/GoogleCloudPlatform/python-docs-samples/master/compute/oslogin/oslogin_service_account_ssh.py
SSH 앱을 실행합니다. 샘플 앱에서
argparse
를 사용하여 명령줄의 변수를 수락합니다. 이 예시에서는 프로젝트의 다른 VM에cowsay
를 설치하고 실행하도록 앱에 지시합니다.python3 service_account_ssh.py \ --cmd 'sudo apt install cowsay -y && cowsay "It works!"' \ --project=PROJECT_ID --instance=VM_NAME --zone=ZONE
다음을 바꿉니다.
PROJECT_ID
: 앱이 연결되는 VM의 프로젝트 IDVM_NAME
: 앱이 연결되는 VM의 이름ZONE
: 앱이 연결되는 VM의 영역
출력은 다음과 비슷합니다.
⋮ ___________ It works! ----------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||
다음 단계
- 전체 코드 샘플을 다운로드하고 확인합니다. 전체 샘플에는 이러한 모든 메서드를 함께 사용하는 방법에 대한 작은 예시가 포함되어 있습니다. 다운로드한 후 필요에 맞게 변경하여 실행하세요.
- SSH 키 구성과 스토리지를 포함하여 Compute Engine에서 SSH 연결이 작동하는 방식에 대해 자세히 알아보기
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2025-10-08(UTC)
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-10-08(UTC)"],[],[]] -