Dokumen ini menjelaskan cara terhubung ke instance virtual machine (VM) melalui alamat IP internalnya, menggunakan VM bastion host. Bastion host menyediakan titik masuk eksternal ke jaringan Virtual Private Cloud (VPC), berisi VM yang tidak memiliki alamat IP eksternal. Saat menggunakan bastion host, hubungkan ke bastion host terlebih dahulu, lalu hubungkan ke VM target.
Terhubung ke VM menggunakan alamat IP internalnya akan berguna jika VM tidak memiliki alamat IP eksternal. Jika VM memiliki alamat IP eksternal, hubungkan ke VM menggunakan alamat IP eksternalnya. Jika Anda perlu terhubung ke VM yang tidak memiliki alamat IP eksternal dan tidak dapat menggunakan bastion host, pelajari metode lain yang tercantum di Opsi koneksi untuk VM khusus internal.
Sistem operasi yang didukung
Metode koneksi ini didukung untuk semua image Linux publik yang tersedia di Compute Engine. Untuk image Fedora CoreOS, Anda harus menyiapkan akses SSH sebelum dapat menggunakan metode ini.
Membuat VM bastion host
Buat VM Compute Engine dalam jaringan internal cluster pribadi untuk bertindak sebagai bastion host yang dapat mengelola cluster.
Buat VM bastion host dengan melakukan hal berikut:
Di konsol Google Cloud, buka halaman Create an instance.
- Tentukan detail VM berikut:
- Name: nama VM Anda.
- Machine type: jenis mesin. Pilih jenis mesin kecil, seperti
e2-micro
. - Boot disk Sistem operasi: OS Linux apa pun.
Luaskan bagian Advanced options, dan lakukan hal berikut:
Di bagian Network interfaces, pilih jaringan dan subnet VPC yang sama dengan VM target.
Untuk External IPv4 address, pilih Ephemeral.
Untuk membuat dan meluncurkan VM, klik Buat.
Buat VM bastion host menggunakan perintah gcloud compute instances create
:
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Buat VM bastion host dengan menjalankan perintah berikut:
gcloud compute instances create
VM_NAME \ --zone=ZONE \ --machine-type=e2-micro \ --image-family=IMAGE_FAMILY \ --image-project=IMAGE_PROJECT \ --network-interface=subnet=SUBNET,address="" Ganti kode berikut:
VM_NAME
: nama VM.ZONE
: zona untuk VM.IMAGE_FAMILY
: kelompok gambar Linux.IMAGE_PROJECT
: project gambar yang berisi gambar.SUBNET
: subnet VPC yang sama dengan VM target. Jika Anda menggunakan VPC default,SUBNET
adalahdefault
.
Menghubungkan ke VM
Untuk terhubung ke VM, selesaikan langkah-langkah di salah satu tab berikut.
Izin yang diperlukan untuk langkah ini
Untuk melakukan tugas ini, Anda harus memiliki izin berikut:
- Semua izin yang disertakan dalam peran Service Account User (
roles/iam.serviceAccountUser
) di akun layanan dan akun pengguna Anda. Untuk detail tentang cara memberikan peran ini pada satu akun layanan, lihat Mengizinkan akun utama meniru identitas satu akun layanan. - Jika menggunakan Login OS, Anda memerlukan semua izin yang tercakup dalam salah satu peran IAM Login OS pada akun layanan dan akun pengguna Anda.
- Jika tidak menggunakan Login OS, Anda juga memerlukan izin
compute.projects.setCommonInstanceMetadata
di akun layanan dan akun pengguna Anda.
Anda juga harus
menetapkan akun layanan ke VM dan menetapkan cakupan akses cloud-platform
pada VM.
Hubungkan ke VM menggunakan SSH melalui bastion host dengan menjalankan perintah gcloud compute ssh
:
Hubungkan ke VM bastion host dengan menjalankan perintah berikut:
gcloud compute ssh
BASTION_NAME Ganti
BASTION_NAME
dengan nama VM bastion host.Dari VM bastion host, hubungkan ke VM utama melalui alamat IP internalnya menggunakan flag
--internal-ip
:gcloud compute ssh
VM_NAME \ --internal-ipGanti
VM_NAME
dengan nama VM yang ingin Anda hubungkan.
Hubungkan ke VM melalui bastion host dari klien OpenSSH, dengan melakukan hal berikut:
- Tambahkan kunci SSH ke VM jika Anda belum melakukannya.
Di konsol Google Cloud, buka halaman VM Instances dan temukan alamat IP eksternal VM host bastion.
- Buka terminal di workstation Anda.
Hubungkan ke VM bastion host dengan menjalankan perintah berikut:
ssh -A -i
PATH_TO_PRIVATE_KEY USERNAME @EXTERNAL_IP Ganti kode berikut:
PATH_TO_PRIVATE_KEY
: jalur ke file kunci SSH pribadi yang sesuai dengan kunci publik yang Anda tambahkan ke VM.USERNAME
: nama pengguna Anda. Jika Anda mengelola kunci SSH di metadata, nama pengguna adalah nama yang Anda tentukan saat membuat kunci SSH. Untuk akun Login OS, nama pengguna ditentukan di profil Google Anda. Misalnya,cloudysanfrancisco_example_com
ataucloudysanfrancisco
.-
EXTERNAL_IP
: alamat IP eksternal VM.
Dari VM bastion host, hubungkan melalui alamat IP internal VM menggunakan perintah berikut:
ssh
USERNAME @INTERNAL_IP Ganti kode berikut:
USERNAME
: nama pengguna Anda. Jika Anda mengelola kunci SSH di metadata, nama pengguna adalah nama yang Anda tentukan saat membuat kunci SSH. Untuk akun Login OS, nama pengguna ditentukan di profil Google Anda. Misalnya,cloudysanfrancisco_example_com
ataucloudysanfrancisco
.INTERNAL_IP
: alamat IP internal VM.
Hubungkan ke VM melalui bastion host menggunakan PuTTY, dengan melakukan hal berikut:
- Tambahkan kunci SSH ke VM host bastion jika Anda belum melakukannya.
- Jika workstation Anda belum menginstal aplikasi PuTTY, download file paket PuTTY.
Di konsol Google Cloud, buka halaman VM Instances dan temukan alamat IP internal VM yang ingin dihubungkan.
- Buka aplikasi PuTTY. Jendela konfigurasi koneksi akan terbuka.
Di kolom
Host Name
, masukkan nama pengguna yang terkait dengan kunci SSH, dan alamat IP eksternal VM yang ingin Anda hubungkan. Gunakan format berikut:USERNAME @EXTERNAL_IP Ganti kode berikut:
USERNAME
: nama pengguna Anda. Jika Anda mengelola kunci SSH di metadata, nama pengguna adalah nama yang Anda tentukan saat membuat kunci SSH. Untuk akun Login OS, nama pengguna ditentukan di profil Google Anda. Misalnya,cloudysanfrancisco_example_com
ataucloudysanfrancisco
.-
EXTERNAL_IP
: alamat IP eksternal VM.
- Pada menu Kategori, buka Koneksi > SSH > Auth.
- Di kolom Private key file for authentication, pilih file kunci SSH pribadi yang sesuai dengan kunci publik yang Anda tambahkan ke VM.
- Di bagian Authentication Parameters, pilih Allow agent forwarding.
- Klik Open untuk menghubungkan ke VM bastion host.
Dari VM bastion host, hubungkan melalui alamat IP internal VM menggunakan perintah berikut:
ssh
USERNAME @INTERNAL_IP Ganti kode berikut:
USERNAME
: nama pengguna Anda. Jika Anda mengelola kunci SSH di metadata, nama pengguna adalah nama yang Anda tentukan saat membuat kunci SSH. Untuk akun Login OS, nama pengguna ditentukan di profil Google Anda. Misalnya,cloudysanfrancisco_example_com
ataucloudysanfrancisco
.INTERNAL_IP
: alamat IP internal VM.
Pemecahan masalah
Untuk menemukan metode mendiagnosis dan menyelesaikan koneksi SSH yang gagal, lihat Memecahkan Masalah SSH.
Langkah berikutnya
- Pelajari cara mengelola akses ke VM.
- Pelajari cara mentransfer file ke VM.
- Pelajari cara kerja koneksi SSH ke VM Linux di Compute Engine.