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
-
Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:
gcloud init
- 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.
- Menginstal Google Cloud CLI.
-
Untuk initialize gcloud CLI, jalankan perintah berikut:
gcloud init
-
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
-
Di konsol Google Cloud, 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.
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 formatpublic-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 IdentityEXPIRE_TIME
: Opsional: waktu habis masa berlaku kunci SSHMisalnya, jika Anda menentukan
30m
, masa berlaku kunci SSH akan habis setelah 30 menit.Flag ini menggunakan unit berikut:
s
untuk detikm
untuk menith
untuk jamd
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
.
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 akunEXPIRATION_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:
Di Konsol Google Cloud, buka halaman Metadata.
Klik tab SSH keys.
Klik Edit.
Klik Add item. Kotak teks akan terbuka.
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 publikUSERNAME
: nama pengguna Anda. Contohcloudysanfrancisco
ataucloudysanfrancisco_gmail_com
.Untuk VM Linux,
USERNAME
tidak bolehroot
, 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, penggunacloudysanfrancisco
dalam ADad.example.com
memilikiUSERNAME
dariexample\cloudysanfrancisco
.EXPIRE_TIME
: waktu habis masa berlaku kunci, dalam format ISO 8601. Contoh:2021-12-04T20:12:00+0000
- Format kunci tanpa waktu habis masa berlaku:
Klik Save.
gcloud
-
Di konsol Google Cloud, 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.
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:
Jika project Anda sudah memiliki kunci SSH publik tingkat project, dapatkan kunci tersebut dari metadata dan tambahkan ke file baru:
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...
Salin nilai metadata
ssh-keys
.Buat dan buka file teks baru di workstation Anda.
Dalam file, tempel daftar kunci yang baru saja Anda salin.
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 publikUSERNAME
: nama pengguna Anda. Misalnya,cloudysanfrancisco
ataucloudysanfrancisco_gmail_com
.Untuk VM Linux,
USERNAME
tidak bolehroot
, 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, penggunacloudysanfrancisco
dalam ADad.example.com
memilikiUSERNAME
dariexample\cloudysanfrancisco
.EXPIRE_TIME
: waktu habis masa berlaku kunci, dalam format ISO 8601. Contoh:2021-12-04T20:12:00+0000
- Format kunci tanpa waktu habis masa berlaku:
Simpan dan tutup file tersebut.
Jalankan perintah
gcloud compute project-info add-metadata
untuk menetapkan nilaissh-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
.
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:
Dapatkan nilai
fingerprint
danssh-keys
dari metadata menggunakan metodeprojects.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"}" } ] ...
Tambahkan nilai
ssh-keys
baru menggunakan metodeprojects.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 AndaEXISTING_SSH_KEYS
: nilai kuncissh-keys
dari respons permintaanprojects.get
FINGERPRINT
: nilaifingerprint
dari respons permintaanprojects.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 publikUSERNAME
: nama pengguna Anda. Misalnya,cloudysanfrancisco
ataucloudysanfrancisco_gmail_com
.Untuk VM Linux,
USERNAME
tidak bolehroot
, 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, penggunacloudysanfrancisco
dalam ADad.example.com
memilikiUSERNAME
dariexample\cloudysanfrancisco
.EXPIRE_TIME
: waktu habis masa berlaku kunci, dalam format ISO 8601. Contoh:2021-12-04T20:12:00+0000
- Format kunci tanpa waktu habis masa berlaku:
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:
Di Konsol Google Cloud, buka halaman Create an instance.
Tentukan detail VM.
Luaskan bagian Advanced options, dan lakukan hal berikut:
Luaskan bagian Security.
Pilih Add manually generated SSH keys.
Klik Add item.
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 publikUSERNAME
: nama pengguna Anda. Contohcloudysanfrancisco
ataucloudysanfrancisco_gmail_com
.Untuk VM Linux,
USERNAME
tidak bolehroot
, 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, penggunacloudysanfrancisco
dalam ADad.example.com
memilikiUSERNAME
dariexample\cloudysanfrancisco
.EXPIRE_TIME
: waktu habis masa berlaku kunci, dalam format ISO 8601. Contoh:2021-12-04T20:12:00+0000
- Format kunci tanpa waktu habis masa berlaku:
Untuk membuat dan memulai VM, klik Create.
gcloud
-
Di konsol Google Cloud, 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.
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 baruPUBLIC_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 publikUSERNAME
: nama pengguna Anda. Misalnya,cloudysanfrancisco
ataucloudysanfrancisco_gmail_com
.Untuk VM Linux,
USERNAME
tidak bolehroot
, 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, penggunacloudysanfrancisco
dalam ADad.example.com
memilikiUSERNAME
dariexample\cloudysanfrancisco
.EXPIRE_TIME
: waktu habis masa berlaku kunci, dalam format ISO 8601. Contoh:2021-12-04T20:12:00+0000
- Format kunci tanpa waktu habis masa berlaku:
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
.
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 IDZONE
: 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 publikUSERNAME
: nama pengguna Anda. Misalnya,cloudysanfrancisco
ataucloudysanfrancisco_gmail_com
.Untuk VM Linux,
USERNAME
tidak bolehroot
, 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, penggunacloudysanfrancisco
dalam ADad.example.com
memilikiUSERNAME
dariexample\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:
Di Konsol Google Cloud, buka halaman VM instances.
Klik nama VM tempat Anda ingin menambahkan kunci SSH.
Klik Edit.
Di bagian SSH Keys, klik Add item.
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 publikUSERNAME
: nama pengguna Anda. Contohcloudysanfrancisco
ataucloudysanfrancisco_gmail_com
.Untuk VM Linux,
USERNAME
tidak bolehroot
, 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, penggunacloudysanfrancisco
dalam ADad.example.com
memilikiUSERNAME
dariexample\cloudysanfrancisco
.EXPIRE_TIME
: waktu habis masa berlaku kunci, dalam format ISO 8601. Contoh:2021-12-04T20:12:00+0000
- Format kunci tanpa waktu habis masa berlaku:
Klik Save.
gcloud
-
Di konsol Google Cloud, 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.
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:
Jika VM Anda sudah memiliki kunci SSH publik tingkat instance, dapatkan kunci tersebut dari metadata dan tambahkan ke file baru:
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"} ...Salin nilai metadata
ssh-keys
.Buat dan buka file teks baru di workstation Anda.
Dalam file, tempel daftar kunci yang baru saja Anda salin.
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 publikUSERNAME
: nama pengguna Anda. Misalnya,cloudysanfrancisco
ataucloudysanfrancisco_gmail_com
.Untuk VM Linux,
USERNAME
tidak bolehroot
, 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, penggunacloudysanfrancisco
dalam ADad.example.com
memilikiUSERNAME
dariexample\cloudysanfrancisco
.EXPIRE_TIME
: waktu habis masa berlaku kunci, dalam format ISO 8601. Contoh:2021-12-04T20:12:00+0000
- Simpan dan tutup file tersebut.
Jalankan perintah
gcloud compute instances add-metadata
untuk menetapkan nilaissh-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 SSHKEY_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:
Dapatkan nilai
fingerprint
danssh-keys
dari metadata menggunakan metodeinstances.get
.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Ganti kode berikut:
PROJECT_ID
: project ID AndaZONE
: zona VM tempat Anda menambahkan kunci SSHVM_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"}" } ] ...
Tambahkan nilai
ssh-keys
baru menggunakan metodeinstances.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 AndaEXISTING_SSH_KEYS
: nilai kuncissh-keys
dari respons permintaaninstances.get
FINGERPRINT
:fingerprint
dari respons permintaanprojects.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 publikUSERNAME
: nama pengguna Anda. Misalnya,cloudysanfrancisco
ataucloudysanfrancisco_gmail_com
.Untuk VM Linux,
USERNAME
tidak bolehroot
, 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, penggunacloudysanfrancisco
dalam ADad.example.com
memilikiUSERNAME
dariexample\cloudysanfrancisco
.EXPIRE_TIME
: waktu habis masa berlaku kunci, dalam format ISO 8601. Contoh:2021-12-04T20:12:00+0000
- Format kunci tanpa waktu habis masa berlaku:
Apa langkah selanjutnya?
- Pelajari cara terhubung ke VM.
- Pelajari cara mengelola akses ke VM.
- Pelajari cara mentransfer file ke VM.
- Pelajari cara kerja koneksi SSH ke VM Linux di Compute Engine.