Menghubungkan ke VM Linux menggunakan bastion host


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.

Konsol

Buat VM bastion host dengan melakukan hal berikut:

  1. Di konsol Google Cloud, buka halaman Create an instance.

    Buka Buat instance

    1. 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.
  2. Luaskan bagian Advanced options, dan lakukan hal berikut:

    1. Di bagian Network interfaces, pilih jaringan dan subnet VPC yang sama dengan VM target.

    2. Untuk External IPv4 address, pilih Ephemeral.

  3. Untuk membuat dan meluncurkan VM, klik Buat.

gcloud

Buat VM bastion host menggunakan perintah gcloud compute instances create:

  1. Di konsol Google Cloud, aktifkan Cloud Shell.

    Aktifkan Cloud Shell

    Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.

  2. 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 adalah default.

Menghubungkan ke VM

Untuk terhubung ke VM, selesaikan langkah-langkah di salah satu tab berikut.

gcloud

Hubungkan ke VM menggunakan SSH melalui bastion host dengan menjalankan perintah gcloud compute ssh:

  1. Hubungkan ke VM bastion host dengan menjalankan perintah berikut:

    gcloud compute ssh BASTION_NAME

    Ganti BASTION_NAME dengan nama VM bastion host.

  2. Dari VM bastion host, hubungkan ke VM utama melalui alamat IP internalnya menggunakan flag --internal-ip:

    gcloud compute ssh VM_NAME \
        --internal-ip

    Ganti VM_NAME dengan nama VM yang ingin Anda hubungkan.

Klien OpenSSH

Hubungkan ke VM melalui bastion host dari klien OpenSSH, dengan melakukan hal berikut:

  1. Tambahkan kunci SSH ke VM jika Anda belum melakukannya.
  2. Di konsol Google Cloud, buka halaman VM Instances dan temukan alamat IP eksternal VM bastion host.

    Buka VM Instance

  3. Buka terminal di workstation Anda.
  4. 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 atau cloudysanfrancisco.
    • EXTERNAL_IP: alamat IP eksternal VM.
  5. 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 atau cloudysanfrancisco.
    • INTERNAL_IP: alamat IP internal VM.

Aplikasi PuTTY

Hubungkan ke VM melalui bastion host menggunakan PuTTY, dengan melakukan hal berikut:

  1. Tambahkan kunci SSH ke VM bastion host jika Anda belum melakukannya.
  2. Jika workstation Anda belum menginstal aplikasi PuTTY, download file paket PuTTY.
  3. Di konsol Google Cloud, buka halaman VM Instances dan temukan alamat IP internal VM yang ingin dihubungkan.

    Buka VM Instance

  4. Buka aplikasi PuTTY. Jendela konfigurasi koneksi akan terbuka.
  5. 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 atau cloudysanfrancisco.
    • EXTERNAL_IP: alamat IP eksternal VM.
  6. Pada menu Kategori, buka Koneksi > SSH > Auth.
  7. Di kolom Private key file for authentication, pilih file kunci SSH pribadi yang sesuai dengan kunci publik yang Anda tambahkan ke VM.
  8. Di bagian Authentication Parameters, pilih Allow agent forwarding.
  9. Klik Open untuk menghubungkan ke VM bastion host.
  10. 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 atau cloudysanfrancisco.
    • INTERNAL_IP: alamat IP internal VM.

Pemecahan masalah

Untuk menemukan metode mendiagnosis dan menyelesaikan koneksi SSH yang gagal, lihat Memecahkan Masalah SSH.

Langkah selanjutnya