Menambahkan kunci SSH ke VM


Dokumen ini menjelaskan cara menambahkan kunci SSH ke instance virtual machine (VM) yang menggunakan Login OS dan VM yang menggunakan kunci SSH berbasis metadata. Jika Anda atau administrator organisasi belum mengaktifkan Login OS, VM Anda akan menggunakan kunci SSH berbasis metadata.

Sebelum memulai

  • Untuk informasi tentang cara mengelola akses ke VM Compute Engine, lihat Memilih metode akses.
  • Siapkan autentikasi, jika Anda belum melakukannya. Autentikasi adalah proses verifikasi identitas Anda untuk akses ke layanan dan API Google Cloud. Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke Compute Engine sebagai berikut.

    Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:

    Konsol

    Saat menggunakan Konsol Google Cloud untuk mengakses API dan layanan Google Cloud, Anda tidak perlu menyiapkan autentikasi.

    gcloud

    1. Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init
    2. Menetapkan region dan zona default.

    Terraform

    Untuk menggunakan contoh Terraform di halaman ini dari lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.

    1. Menginstal Google Cloud CLI.
    2. Untuk initialize gcloud CLI, jalankan perintah berikut:

      gcloud init
    3. Buat kredensial autentikasi lokal untuk Akun Google Anda:

      gcloud auth application-default login

    Untuk informasi selengkapnya, lihat Siapkan autentikasi untuk lingkungan pengembangan lokal.

    REST

    Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.

      Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init

Menambahkan kunci ke VM yang menggunakan Login OS

VM yang menggunakan Login OS menerima kunci SSH yang terkait dengan Akun Google Anda. Anda dapat mengaitkan kunci SSH publik dengan Akun Google Anda menggunakan gcloud CLI atau OS Login API. Jika Anda adalah administrator organisasi, Anda dapat menambahkan kunci SSH ke akun pengguna menggunakan Directory API.

Saat Anda menambahkan kunci SSH ke Akun Google, Compute Engine akan menghasilkan nama pengguna dengan menggabungkan nama pengguna dan domain dari email yang terkait dengan Akun Google Anda. Misalnya, jika alamat email Anda adalah cloudysanfrancisco@gmail.com, nama pengguna Anda adalah cloudysanfrancisco_gmail_com. Jika Anda menambahkan kunci SSH ke project yang berada di luar organisasi, nama pengguna Anda akan diawali dengan ext_, misalnya, ext_cloudysanfrancisco_gmail_com. Administrator organisasi dapat menyesuaikan nama pengguna menggunakan Directory API. Jika nama pengguna Anda sudah dikonfigurasi, Compute Engine akan menggunakan nama pengguna tersebut saat Anda menambahkan kunci SSH.

gcloud

  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. Untuk menambahkan kunci SSH publik ke akun Anda, gunakan perintah gcloud compute os-login ssh-keys add:

    gcloud compute os-login ssh-keys add \
       --key-file=KEY_FILE_PATH \
       --project=PROJECT \
       --ttl=EXPIRE_TIME
    

    Ganti kode berikut:

    • KEY_FILE_PATH: jalur ke kunci SSH publik di workstation Anda. Kunci harus menggunakan format public-openssh
    • PROJECT: Opsional: project tempat Anda akan menggunakan kunci SSH. Tentukan kolom ini untuk menggunakan kunci SSH dalam project di luar organisasi Anda, atau jika Anda bukan anggota organisasi Cloud Identity
    • EXPIRE_TIME: Opsional: waktu habis masa berlaku kunci SSH

      Misalnya, jika Anda menentukan 30m, masa berlaku kunci SSH akan habis setelah 30 menit.

      Flag ini menggunakan unit berikut:

      • s untuk detik
      • m untuk menit
      • h untuk jam
      • d untuk hari

Terraform

Untuk menambahkan kunci SSH publik ke akun Anda, gunakan resource google_client_openid_userinfo bersama dengan resource google_os_login_ssh_public_key.

data "google_client_openid_userinfo" "me" {
}

resource "google_os_login_ssh_public_key" "default" {
  user = data.google_client_openid_userinfo.me.email
  key  = file("id_rsa.pub") # path/to/ssl/id_rsa.pub
}

REST

Untuk menambahkan kunci SSH publik ke akun Anda, gunakan metode users.importSshPublicKey OS Login API:

POST https://oslogin.googleapis.com/v1/users/ACCOUNT_EMAIL:importSshPublicKey

{
 "key": "SSH_KEY",
 "expirationTimeUsec": "EXPIRATION_TIMESTAMP"
}

Ganti kode berikut:

  • ACCOUNT_EMAIL: alamat email yang terkait dengan akun Anda.
  • SSH_KEY: kunci publik yang Anda ingin tambahkan ke akun
  • EXPIRATION_TIMESTAMP: waktu habis masa berlaku kunci, dalam mikrodetik sejak epoch (1 detik = 106 mikrodetik)

Menambahkan kunci SSH ke VM yang menggunakan kunci SSH berbasis metadata

VM yang tidak menggunakan Login OS menyimpan kunci SSH di project Compute Engine dan metadata instance. Anda dapat menggunakan kunci SSH yang disimpan di metadata project untuk mengakses semua VM dalam project. Anda dapat menggunakan kunci SSH yang disimpan dalam metadata instance untuk mengakses setiap VM.

Compute Engine tidak otomatis menghapus kunci SSH yang sudah tidak berlaku dari metadata pada waktu habis masa berlakunya, tetapi kunci tersebut tidak dapat digunakan untuk membuat koneksi baru ke VM. Jika ingin menghapus kunci yang habis masa berlakunya dari metadata, baca artikel Menghapus kunci SSH dari VM yang menggunakan kunci berbasis metadata.

Anda dapat menambahkan kunci SSH publik ke metadata project atau instance menggunakan Konsol Google Cloud, gcloud CLI, atau Compute Engine API.

Menambahkan kunci SSH ke metadata project

Anda dapat menambahkan kunci SSH publik ke metadata project untuk mengakses semua VM dalam project, kecuali VM yang memblokir kunci SSH di tingkat project. Untuk penjelasan selengkapnya tentang cara memblokir kunci SSH di tingkat project, baca Memblokir kunci SSH dari VM yang menggunakan kunci SSH berbasis metadata.

Konsol

Untuk menambahkan kunci SSH publik ke metadata project menggunakan Konsol Google Cloud, lakukan langkah berikut:

  1. Di Konsol Google Cloud, buka halaman Metadata.

    Buka Metadata

  2. Klik tab SSH keys.

  3. Klik Edit.

  4. Klik Add item. Kotak teks akan terbuka.

  5. Tambahkan kunci publik Anda di kotak teks. Kunci ini harus dalam salah satu format berikut:

    • Format kunci tanpa waktu habis masa berlaku:

      KEY_VALUE USERNAME
    • Format kunci dengan waktu habis masa berlaku:

      KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}

    Ganti kode berikut:

    • KEY_VALUE: nilai kunci SSH publik
    • USERNAME: nama pengguna Anda. Contoh cloudysanfrancisco atau cloudysanfrancisco_gmail_com.

      Untuk VM Linux, USERNAME tidak boleh root, kecuali jika Anda mengonfigurasi VM untuk mengizinkan login root. Untuk mengetahui informasi selengkapnya, lihat Terhubung ke VM Linux sebagai pengguna root.

      Untuk VM Windows yang menggunakan Active Directory (AD), nama pengguna harus diawali dengan domain AD, dalam format DOMAIN\. Misalnya, pengguna cloudysanfrancisco dalam AD ad.example.com memiliki USERNAME dari example\cloudysanfrancisco.

    • EXPIRE_TIME: waktu habis masa berlaku kunci, dalam format ISO 8601. Contoh: 2021-12-04T20:12:00+0000
  6. Klik Save.

gcloud

  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. Jika sudah ada kunci SSH di metadata project, Anda harus menambahkannya kembali ke metadata project setiap kali menambahkan kunci SSH baru menggunakan gcloud CLI. Jika Anda tidak menambahkan kembali kunci yang ada, menambahkan kunci baru akan menghapus kunci yang ada.

    Untuk menambahkan kunci SSH publik ke metadata project menggunakan gcloud CLI, lakukan langkah berikut:

    1. Jika project Anda sudah memiliki kunci SSH publik tingkat project, dapatkan kunci tersebut dari metadata dan tambahkan ke file baru:

      1. Jalankan perintah gcloud compute project-info describe untuk mendapatkan kunci SSH untuk project:

        gcloud compute project-info describe \
         --format="value(commonInstanceMetadata[items][ssh-keys])"
        

        Output-nya mirip dengan berikut ini:

        username:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ... username:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ...
        
      2. Salin nilai metadata ssh-keys.

      3. Buat dan buka file teks baru di workstation Anda.

      4. Dalam file, tempel daftar kunci yang baru saja Anda salin.

      5. Tambahkan kunci baru di akhir daftar, dalam salah satu format berikut:

        • Format kunci tanpa waktu habis masa berlaku:

          USERNAME:KEY_VALUE
        • Format kunci dengan waktu habis masa berlaku:

          USERNAME:KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}

        Ganti kode berikut:

        • KEY_VALUE: nilai kunci SSH publik
        • USERNAME: nama pengguna Anda. Misalnya, cloudysanfrancisco atau cloudysanfrancisco_gmail_com.

          Untuk VM Linux, USERNAME tidak boleh root, kecuali jika Anda mengonfigurasi VM untuk mengizinkan login root. Untuk mengetahui informasi selengkapnya, lihat Terhubung ke instance sebagai pengguna root.

          Untuk VM Windows yang menggunakan Active Directory (AD), nama pengguna harus diawali dengan domain AD, dalam format DOMAIN\. Misalnya, pengguna cloudysanfrancisco dalam AD ad.example.com memiliki USERNAME dari example\cloudysanfrancisco.

        • EXPIRE_TIME: waktu habis masa berlaku kunci, dalam format ISO 8601. Contoh: 2021-12-04T20:12:00+0000
      6. Simpan dan tutup file tersebut.

    2. Jalankan perintah gcloud compute project-info add-metadata untuk menetapkan nilai ssh-keys tingkat project:

      gcloud compute project-info add-metadata --metadata-from-file=ssh-keys=KEY_FILE
      

      Ganti KEY_FILE dengan salah satu dari berikut ini:

      • Jalur ke file yang Anda buat pada langkah sebelumnya, jika project sudah memiliki kunci SSH
      • Jalur ke file kunci SSH publik baru, jika project tidak memiliki kunci SSH

Terraform

Untuk menambahkan kunci SSH publik ke metadata project Anda, gunakan resource google_compute_project_metadata.

resource "google_compute_project_metadata" "default" {
  metadata = {
    ssh-keys = <<EOF
      dev:ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILg6UtHDNyMNAh0GjaytsJdrUxjtLy3APXqZfNZhvCeT dev
      test:ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILg6UtHDNyMNAh0GjaytsJdrUxjtLy3APXqZfNZhvCeT test
    EOF
  }
}

REST

Jika sudah ada kunci SSH di metadata project, Anda harus menambahkannya kembali ke metadata project setiap kali menambahkan kunci SSH baru menggunakan Compute Engine API. Jika Anda tidak menambahkan kembali kunci yang ada, menambahkan kunci baru akan menghapus kunci yang ada.

Untuk menambahkan kunci SSH publik ke metadata project menggunakan Compute Engine API, lakukan langkah berikut:

  1. Dapatkan nilai fingerprint dan ssh-keys dari metadata menggunakan metode projects.get

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID
    

    Ganti PROJECT_ID dengan project ID Anda.

    Responsnya mirip dengan hal berikut ini:

    ...
    "fingerprint": "utgYE_XWtE8=",
    "items": [
    {
     "key": "ssh-keys",
     "value": "cloudysanfrancisco:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAu5kKQCPF...\nbaklavainthebalkans:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDQDx3FNVC8... google-ssh {"userName":"baklavainthebalkans","expireOn":"2021-06-14T16:59:03+0000"}"
    }
    ]
    ...
    
  2. Tambahkan nilai ssh-keys baru menggunakan metode projects.setCommonInstanceMetadata.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/setCommonInstanceMetadata
    
    {
    "items": [
     {
      "key": "ssh-keys",
      "value": "EXISTING_SSH_KEYS\nNEW_SSH_KEY"
     }
    ]
    "fingerprint": "FINGERPRINT"
    }
    

    Ganti kode berikut:

    • PROJECT_ID: ID project Anda
    • EXISTING_SSH_KEYS: nilai kunci ssh-keys dari respons permintaan projects.get
    • FINGERPRINT: nilai fingerprint dari respons permintaan projects.get
    • NEW_SSH_KEY: kunci SSH baru, dalam salah satu format berikut:

      • Format kunci tanpa waktu habis masa berlaku:

        USERNAME:KEY_VALUE
      • Format kunci dengan waktu habis masa berlaku:

        USERNAME:KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}

      Ganti kode berikut:

      • KEY_VALUE: nilai kunci SSH publik
      • USERNAME: nama pengguna Anda. Misalnya, cloudysanfrancisco atau cloudysanfrancisco_gmail_com.

        Untuk VM Linux, USERNAME tidak boleh root, kecuali jika Anda mengonfigurasi VM untuk mengizinkan login root. Untuk mengetahui informasi selengkapnya, lihat Terhubung ke instance sebagai pengguna root.

        Untuk VM Windows yang menggunakan Active Directory (AD), nama pengguna harus diawali dengan domain AD, dalam format DOMAIN\. Misalnya, pengguna cloudysanfrancisco dalam AD ad.example.com memiliki USERNAME dari example\cloudysanfrancisco.

      • EXPIRE_TIME: waktu habis masa berlaku kunci, dalam format ISO 8601. Contoh: 2021-12-04T20:12:00+0000

Menambahkan kunci SSH ke metadata instance

Anda dapat menambahkan kunci SSH publik ke metadata instance saat membuat VM atau setelah membuat VM.

Menambahkan kunci SSH ke metadata instance selama pembuatan VM

Anda dapat menambahkan kunci SSH ke metadata instance selama pembuatan VM, menggunakan Konsol Google Cloud, gcloud CLI, atau Compute Engine API.

Konsol

Untuk membuat VM dan menambahkan kunci SSH publik ke metadata instance secara bersamaan menggunakan Konsol Google Cloud, lakukan langkah berikut:

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

    Buka Create an instance

  2. Tentukan detail VM.

  3. Luaskan bagian Advanced options, dan lakukan hal berikut:

    1. Luaskan bagian Security.

    2. Pilih Add manually generated SSH keys.

    3. Klik Add item.

    4. Tambahkan kunci publik Anda di kotak teks. Kunci ini harus dalam salah satu format berikut:

      • Format kunci tanpa waktu habis masa berlaku:

        KEY_VALUE USERNAME
      • Format kunci dengan waktu habis masa berlaku:

        KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}

      Ganti kode berikut:

      • KEY_VALUE: nilai kunci SSH publik
      • USERNAME: nama pengguna Anda. Contoh cloudysanfrancisco atau cloudysanfrancisco_gmail_com.

        Untuk VM Linux, USERNAME tidak boleh root, kecuali jika Anda mengonfigurasi VM untuk mengizinkan login root. Untuk mengetahui informasi selengkapnya, lihat Terhubung ke VM Linux sebagai pengguna root.

        Untuk VM Windows yang menggunakan Active Directory (AD), nama pengguna harus diawali dengan domain AD, dalam format DOMAIN\. Misalnya, pengguna cloudysanfrancisco dalam AD ad.example.com memiliki USERNAME dari example\cloudysanfrancisco.

      • EXPIRE_TIME: waktu habis masa berlaku kunci, dalam format ISO 8601. Contoh: 2021-12-04T20:12:00+0000
  4. Untuk membuat dan memulai VM, klik Create.

gcloud

  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. Untuk membuat VM dan menambahkan kunci SSH publik ke metadata instance secara bersamaan menggunakan gcloud CLI, gunakan perintah gcloud compute instances create:

    gcloud compute instances create VM_NAME \
       --metadata=ssh-keys=PUBLIC_KEY
    

    Ganti kode berikut:

    • VM_NAME: nama VM baru
    • PUBLIC_KEY: kunci SSH publik Anda, dalam salah satu format berikut:

      • Format kunci tanpa waktu habis masa berlaku:

        USERNAME:KEY_VALUE
      • Format kunci dengan waktu habis masa berlaku:

        USERNAME:KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}

      Ganti kode berikut:

      • KEY_VALUE: nilai kunci SSH publik
      • USERNAME: nama pengguna Anda. Misalnya, cloudysanfrancisco atau cloudysanfrancisco_gmail_com.

        Untuk VM Linux, USERNAME tidak boleh root, kecuali jika Anda mengonfigurasi VM untuk mengizinkan login root. Untuk mengetahui informasi selengkapnya, lihat Terhubung ke instance sebagai pengguna root.

        Untuk VM Windows yang menggunakan Active Directory (AD), nama pengguna harus diawali dengan domain AD, dalam format DOMAIN\. Misalnya, pengguna cloudysanfrancisco dalam AD ad.example.com memiliki USERNAME dari example\cloudysanfrancisco.

      • EXPIRE_TIME: waktu habis masa berlaku kunci, dalam format ISO 8601. Contoh: 2021-12-04T20:12:00+0000

    Anda dapat menambahkan beberapa kunci SSH menggunakan flag --metadata-from-file=ssh-keys=FILE_PATH. Dalam file tersebut, tambahkan daftar nama pengguna dan kunci SSH publik dalam salah satu format sebelumnya.

Terraform

Untuk menambahkan kunci SSH publik ke metadata instance, gunakan resource google_compute_instance.

resource "google_compute_instance" "default" {
  name         = "my-vm"
  machine_type = "n1-standard-1"
  zone         = "us-central1-a"

  boot_disk {
    initialize_params {
      image = "ubuntu-1404-trusty-v20160627"
    }
  }

  # Local SSD disk
  scratch_disk {
    interface = "SCSI"
  }

  network_interface {
    network = "default"
    access_config {}
  }
  metadata = {
    "ssh-keys" = <<EOT
      dev:ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILg6UtHDNyMNAh0GjaytsJdrUxjtLy3APXqZfNZhvCeT dev
      test:ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILg6UtHDNyMNAh0GjaytsJdrUxjtLy3APXqZfNZhvCeT test
     EOT
  }
}

REST

Untuk membuat VM dan menambahkan kunci SSH publik ke metadata instance secara bersamaan menggunakan Compute Engine, buat permintaan POST ke metode instances.insert:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

Ganti kode berikut:

  • PROJECT_ID: the project ID
  • ZONE: zona VM

Dalam isi permintaan, berikan nama pengguna dan kunci SSH publik di properti items:

...
{
 "items": [
    {
     "key": "ssh-keys",
     "value": "PUBLIC_KEY"
    }
   ]
}
...

Ganti PUBLIC_KEY dengan kunci publik Anda, dalam salah satu format berikut:

  • Format kunci tanpa waktu habis masa berlaku:

    USERNAME:KEY_VALUE
  • Format kunci dengan waktu habis masa berlaku:

    USERNAME:KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}

Ganti kode berikut:

  • KEY_VALUE: nilai kunci SSH publik
  • USERNAME: nama pengguna Anda. Misalnya, cloudysanfrancisco atau cloudysanfrancisco_gmail_com.

    Untuk VM Linux, USERNAME tidak boleh root, kecuali jika Anda mengonfigurasi VM untuk mengizinkan login root. Untuk mengetahui informasi selengkapnya, lihat Terhubung ke instance sebagai pengguna root.

    Untuk VM Windows yang menggunakan Active Directory (AD), nama pengguna harus diawali dengan domain AD, dalam format DOMAIN\. Misalnya, pengguna cloudysanfrancisco dalam AD ad.example.com memiliki USERNAME dari example\cloudysanfrancisco.

  • EXPIRE_TIME: waktu habis masa berlaku kunci, dalam format ISO 8601. Contoh: 2021-12-04T20:12:00+0000

Anda dapat menambahkan beberapa kunci SSH dengan menambahkan \n di antara kunci.

Menambahkan kunci SSH ke metadata instance setelah pembuatan VM

Anda dapat menambahkan kunci SSH ke metadata instance setelah pembuatan VM, menggunakan Konsol Google Cloud, gcloud CLI, atau Compute Engine API.

Konsol

Untuk menambahkan kunci SSH publik ke metadata instance menggunakan Konsol Google Cloud, lakukan langkah berikut:

  1. Di Konsol Google Cloud, buka halaman VM instances.

    Buka VM Instances

  2. Klik nama VM tempat Anda ingin menambahkan kunci SSH.

  3. Klik Edit.

  4. Di bagian SSH Keys, klik Add item.

  5. Tambahkan kunci publik Anda ke dalam kotak teks. Kunci ini harus dalam salah satu format berikut:

    • Format kunci tanpa waktu habis masa berlaku:

      KEY_VALUE USERNAME
    • Format kunci dengan waktu habis masa berlaku:

      KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}

    Ganti kode berikut:

    • KEY_VALUE: nilai kunci SSH publik
    • USERNAME: nama pengguna Anda. Contoh cloudysanfrancisco atau cloudysanfrancisco_gmail_com.

      Untuk VM Linux, USERNAME tidak boleh root, kecuali jika Anda mengonfigurasi VM untuk mengizinkan login root. Untuk mengetahui informasi selengkapnya, lihat Terhubung ke VM Linux sebagai pengguna root.

      Untuk VM Windows yang menggunakan Active Directory (AD), nama pengguna harus diawali dengan domain AD, dalam format DOMAIN\. Misalnya, pengguna cloudysanfrancisco dalam AD ad.example.com memiliki USERNAME dari example\cloudysanfrancisco.

    • EXPIRE_TIME: waktu habis masa berlaku kunci, dalam format ISO 8601. Contoh: 2021-12-04T20:12:00+0000
  6. Klik Save.

gcloud

  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. Jika sudah ada kunci SSH dalam metadata instance, Anda harus menambahkannya kembali ke metadata instance setiap kali menambahkan kunci SSH baru menggunakan gcloud CLI. Jika Anda tidak menambahkan kembali kunci yang sudah ada, menambahkan kunci baru akan menghapus kunci yang ada.

    Untuk menambahkan kunci SSH publik ke metadata instance menggunakan gcloud CLI, lakukan langkah berikut:

    1. Jika VM Anda sudah memiliki kunci SSH publik tingkat instance, dapatkan kunci tersebut dari metadata dan tambahkan ke file baru:

      1. Jalankan perintah gcloud compute instances describe untuk mendapatkan metadata untuk VM:

        gcloud compute instances describe VM_NAME
        

        Ganti VM_NAME dengan nama VM tempat Anda ingin menambahkan atau menghapus kunci SSH publik.

        Outputnya mirip dengan hal berikut ini:

        ...
        metadata:
        ...
        - key: ssh-keys
         value: |-
           cloudysanfrancisco:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAu5kKQCPF...
           baklavainthebalkans:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDQDx3FNVC8... google-ssh {"userName":"baklavainthebalkans","expireOn":"2021-06-14T16:59:03+0000"}
        ...
        
      2. Salin nilai metadata ssh-keys.

      3. Buat dan buka file teks baru di workstation Anda.

      4. Dalam file, tempel daftar kunci yang baru saja Anda salin.

      5. Tambahkan kunci baru di akhir daftar, dalam salah satu format berikut:

      • Format kunci tanpa waktu habis masa berlaku:

        USERNAME:KEY_VALUE
      • Format kunci dengan waktu habis masa berlaku:

        USERNAME:KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}

      Ganti kode berikut:

      • KEY_VALUE: nilai kunci SSH publik
      • USERNAME: nama pengguna Anda. Misalnya, cloudysanfrancisco atau cloudysanfrancisco_gmail_com.

        Untuk VM Linux, USERNAME tidak boleh root, kecuali jika Anda mengonfigurasi VM untuk mengizinkan login root. Untuk mengetahui informasi selengkapnya, lihat Terhubung ke instance sebagai pengguna root.

        Untuk VM Windows yang menggunakan Active Directory (AD), nama pengguna harus diawali dengan domain AD, dalam format DOMAIN\. Misalnya, pengguna cloudysanfrancisco dalam AD ad.example.com memiliki USERNAME dari example\cloudysanfrancisco.

      • EXPIRE_TIME: waktu habis masa berlaku kunci, dalam format ISO 8601. Contoh: 2021-12-04T20:12:00+0000
      1. Simpan dan tutup file tersebut.
    2. Jalankan perintah gcloud compute instances add-metadata untuk menetapkan nilai ssh-keys:

      gcloud compute instances add-metadata VM_NAME --metadata-from-file ssh-keys=KEY_FILE
      

      Ganti kode berikut:

      • VM_NAME: VM yang ingin Anda tambahi kunci SSH
      • KEY_FILE dengan salah satu dari berikut ini:
      • Jalur ke file yang Anda buat pada langkah sebelumnya, jika VM sudah memiliki kunci SSH
      • Jalur ke file kunci SSH publik baru, jika VM tidak memiliki kunci SSH

REST

Jika sudah ada kunci SSH dalam metadata instance, Anda harus menambahkannya kembali ke metadata instance setiap kali menambahkan kunci SSH baru menggunakan Compute Engine API. Jika Anda tidak menambahkan kembali kunci yang sudah ada, menambahkan kunci baru akan menghapus kunci yang ada.

Untuk menambahkan kunci SSH publik ke metadata instance menggunakan Compute Engine API, lakukan langkah berikut:

  1. Dapatkan nilai fingerprint dan ssh-keys dari metadata menggunakan metode instances.get.

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
    

    Ganti kode berikut:

    • PROJECT_ID: project ID Anda
    • ZONE: zona VM tempat Anda menambahkan kunci SSH
    • VM_NAME: VM tempat Anda menambahkan kunci SSH

    Responsnya mirip dengan hal berikut ini:

    ...
    "fingerprint": "utgYE_XWtE8=",
    "items": [
    {
     "key": "ssh-keys",
      "value": "cloudysanfrancisco:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAu5kKQCPF...\nbaklavainthebalkans:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDQDx3FNVC8... google-ssh {"userName":"baklavainthebalkans","expireOn":"2021-06-14T16:59:03+0000"}"
    }
    ]
    ...
    
  2. Tambahkan nilai ssh-keys baru menggunakan metode instances.setMetadata.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setMetadata
    
    {
    "items": [
     {
      "key": "ssh-keys",
      "value": "EXISTING_SSH_KEYS\nNEW_SSH_KEY"
     }
    ]
    "fingerprint": "FINGERPRINT"
    }
    

    Ganti kode berikut:

    • PROJECT_ID: ID project Anda
    • EXISTING_SSH_KEYS: nilai kunci ssh-keys dari respons permintaan instances.get
    • FINGERPRINT: fingerprint dari respons permintaan projects.get
    • NEW_SSH_KEY: kunci SSH baru, dalam salah satu format berikut:

      • Format kunci tanpa waktu habis masa berlaku:

        USERNAME:KEY_VALUE
      • Format kunci dengan waktu habis masa berlaku:

        USERNAME:KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}

      Ganti kode berikut:

      • KEY_VALUE: nilai kunci SSH publik
      • USERNAME: nama pengguna Anda. Misalnya, cloudysanfrancisco atau cloudysanfrancisco_gmail_com.

        Untuk VM Linux, USERNAME tidak boleh root, kecuali jika Anda mengonfigurasi VM untuk mengizinkan login root. Untuk mengetahui informasi selengkapnya, lihat Terhubung ke instance sebagai pengguna root.

        Untuk VM Windows yang menggunakan Active Directory (AD), nama pengguna harus diawali dengan domain AD, dalam format DOMAIN\. Misalnya, pengguna cloudysanfrancisco dalam AD ad.example.com memiliki USERNAME dari example\cloudysanfrancisco.

      • EXPIRE_TIME: waktu habis masa berlaku kunci, dalam format ISO 8601. Contoh: 2021-12-04T20:12:00+0000

Apa langkah selanjutnya?