Dokumen ini menjelaskan cara mencegah pengguna mengakses instance virtual machine (VM) dengan menghapus dan memblokir kunci SSH dari VM.
Sebelum memulai
-
Jika Anda belum melakukannya, siapkan autentikasi.
Autentikasi adalah
proses verifikasi identitas Anda untuk mengakses layanan dan API Google Cloud.
Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat mengautentikasi ke Compute Engine dengan memilih salah satu opsi berikut:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
Jika tidak tahu kunci mana yang ingin dihapus, jalankan perintah
gcloud compute os-login describe-profile
untuk melihat semua kunci yang terkait dengan akun Anda:gcloud compute os-login describe-profile
Salin nilai
fingerprint
kunci yang ingin dihapus.Hapus kunci dari akun Anda menggunakan perintah
gcloud compute os-login ssh-keys remove
:gcloud compute os-login ssh-keys remove --key=KEY
Ganti
KEY
dengan kunci SSH publik yang ingin Anda hapus, atau sidik jari Login OS untuk kunci yang ingin Anda hapus.Jika tidak tahu kunci mana yang ingin dihapus, gunakan metode
users.getLoginProfile
untuk melihat semua kunci yang terkait dengan akun Anda:GET https://oslogin.googleapis.com/v1/users/ACCOUNT_EMAIL/loginProfile
Ganti
ACCOUNT_EMAIL
dengan alamat email yang terkait dengan akun Anda.Salin nilai
fingerprint
kunci yang ingin dihapus.Hapus kunci dari akun menggunakan metode
users.sshPublicKeys.delete
:DELETE https://oslogin.googleapis.com/v1/users/ACCOUNT_EMAIL/sshPublicKeys/FINGERPRINT
Ganti kode berikut:
ACCOUNT_EMAIL
: alamat email yang terkait dengan akun Anda.FINGERPRINT
: sidik jari SHA-256 kunci yang akan dihapus
Di Konsol Google Cloud, buka halaman Metadata.
Klik tab SSH keys.
Klik
Edit di bagian atas halaman.Buka kunci SSH yang ingin Anda hapus, lalu klik tombol hapus
di samping kunci SSH.Ulangi langkah ini untuk setiap kunci SSH yang ingin Anda hapus.
Klik Simpan.
Jalankan perintah
gcloud compute project-info describe
untuk mendapatkan metadata project:gcloud compute project-info describe
Outputnya mirip dengan yang 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.
Di dalam file tersebut, tempel daftar kunci SSH yang baru saja Anda salin, lalu hapus kunci apa pun yang ingin dihapus dari metadata project.
Simpan dan tutup file tersebut.
Jalankan perintah
gcloud compute project-info add-metadata
untuk menetapkan nilaissh-keys
di seluruh project:gcloud compute project-info add-metadata --metadata-from-file=ssh-keys=KEY_FILE
Ganti
KEY_FILE
dengan salah satu dari yang berikut ini:- jalur ke file yang Anda buat di langkah sebelumnya, jika project memiliki kunci SSH yang ada
- jalur ke file kunci SSH publik baru, jika project tidak memiliki kunci SSH
Gunakan metode
projects.get
untuk mendapatkan nilaifingerprint
danssh-keys
dari metadata.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID
Ganti
PROJECT_ID
dengan ID project Anda.Responsnya mirip dengan yang 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"}" } ] ...
Salin daftar nilai kunci SSH dan hapus kunci yang ingin dihapus.
Gunakan
projects.setCommonInstanceMetadata
untuk menghapus kunci SSH.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/setCommonInstanceMetadata { "items": [ { "key": "ssh-keys", "value": "EXISTING_SSH_KEYS" } ] "fingerprint": "FINGERPRINT" }
Ganti kode berikut:
PROJECT_ID
: ID project AndaEXISTING_SSH_KEYS
: daftar kunci SSH yang ingin Anda pertahankanFINGERPRINT
: nilaifingerprint
dari respons permintaanprojects.get
Di konsol Google Cloud, buka halaman Instance VM.
Klik nama VM yang ingin Anda hapus kuncinya.
Klik Edit.
Di bagian SSH Keys, klik Show and edit. Bagian ini akan diperluas untuk menampilkan semua kunci SSH publik level instance.
Klik tombol hapus
di samping kunci SSH yang ingin Anda hapus.Ulangi langkah ini untuk setiap kunci SSH yang ingin Anda hapus.
Klik Simpan.
Jalankan perintah
gcloud compute instances describe
untuk mendapatkan metadata untuk VM:gcloud compute instances describe VM_NAME
Ganti VM_NAME dengan nama VM yang perlu Anda tambahkan atau hapus kunci SSH publik.
Outputnya mirip dengan yang 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 lokal.
Di dalam file tersebut, tempel daftar kunci SSH yang baru saja Anda salin, lalu hapus kunci yang ingin dihapus.
Simpan dan tutup file tersebut.
Jalankan perintah
gcloud compute project-info add-metadata
untuk menetapkan nilaissh-keys
di seluruh project:gcloud compute instances add-metadata VM_NAME --metadata-from-file ssh-keys=KEY_FILE
Ganti kode berikut:
VM_NAME
: VM yang ingin Anda hapus kunci SSH-nyaKEY_FILE
: jalur ke file yang berisi daftar semua kunci SSH project
Gunakan metode
instances.get
untuk mendapatkan nilaifingerprint
danssh-keys
dari metadata.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Ganti kode berikut:
PROJECT_ID
: ID project AndaZONE
: zona VM yang Anda tambahkan kunci SSH-nyaVM_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"}" } ] ...
Salin daftar nilai kunci SSH dan hapus kunci yang ingin dihapus.
Gunakan
instances.setMetadata
untuk menghapus kunci SSH.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setMetadata { "items": [ { "key": "ssh-keys", "value": "EXISTING_SSH_KEYS } ] "fingerprint": "FINGERPRINT" }
Ganti kode berikut:
PROJECT_ID
: ID project AndaEXISTING_SSH_KEYS
: nilai kuncissh-keys
dari respons permintaanprojects.get
FINGERPRINT
: nilaifingerprint
dari respons permintaaninstances.get
Di Konsol Google Cloud, buka halaman Create an instance.
Tentukan detail VM.
Luaskan bagian Advanced options, dan lakukan hal berikut:
Luaskan bagian Security.
Centang Block project-wide SSH keys.
Untuk membuat dan memulai VM, klik Create.
PROJECT_ID
: the project IDZONE
: zona VMDi konsol Google Cloud, buka halaman Instance VM.
Klik nama VM yang kunci SSH project-nya ingin Anda blokir.
Klik Edit.
Pada SSH Keys, centang Block project-wide SSH keys.
Setelah selesai mengedit setelan koneksi untuk kunci SSH, klik Save.
Gunakan metode
instances.get
untuk mendapatkanfingerprint
dari metadata.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Ganti kode berikut:
PROJECT_ID
: ID project AndaZONE
: zona VM yang Anda tambahkan kunci SSH-nyaVM_NAME
: VM tempat Anda menambahkan kunci SSH
Responsnya mirip dengan hal berikut ini:
... "fingerprint": "utgYE_XWtE8=" ...
Gunakan metode
instances.setMetadata
untuk menyetelblock-project-ssh-keys
keTRUE
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setMetadata { "items": [ { "key": "block-project-ssh-keys", "value": TRUE } ] "fingerprint": "FINGERPRINT" }
Ganti kode berikut:
PROJECT_ID
adalah ID project AndaZONE
adalah zona tempat instance Anda beradaINSTANCE_NAME
adalah instance tempat Anda ingin memblokir kunci seluruh project.FINGERPRINT
: nilaifingerprint
dari respons permintaaninstances.get
.
- Pelajari manfaat menggunakan Login OS untuk pengelolaan akses.
- Terhubung ke VM menggunakan alat Google, sehingga Anda tidak perlu mengelola kunci SSH sendiri.
REST
Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Untuk informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud.
Menghapus kunci SSH
Anda dapat menghapus kunci SSH dari VM yang menggunakan Login OS dan VM yang menggunakan kunci SSH berbasis metadata.Menghapus kunci SSH dari VM yang menggunakan Login OS
VM yang menggunakan Login OS menerima kunci SSH yang terkait dengan Akun Google Anda. Anda dapat menghapus kunci SSH publik dari akun pengguna menggunakan Google Cloud CLI atau OS Login API. Jika Anda adalah administrator untuk organisasi, Anda dapat menghapus kunci SSH dari akun pengguna menggunakan Directory API. Compute Engine otomatis menghapus kunci yang sudah tidak berlaku dari Akun Google Anda.
gcloud
Untuk menghapus kunci SSH publik dari akun Anda, lakukan hal berikut:
REST
Untuk menghapus kunci SSH publik dari akun Anda, lakukan hal berikut:
Menghapus kunci SSH dari VM yang menggunakan kunci berbasis metadata
Anda dapat menghapus kunci SSH publik dari project atau metadata instance menggunakan Google Cloud Console, gcloud CLI, atau Compute Engine API.
Setelah Anda menghapus kunci terakhir dari metadata untuk pengguna tertentu, atau kunci terakhir dalam metadata untuk pengguna tertentu sudah tidak berlaku, Compute Engine akan menghapus file
Perhatian: Jika mengelola kunci SSH di metadata, Anda dapat mengganggu kemampuan anggota project untuk terhubung ke VM. Selain itu, Anda berisiko memberi pengguna, termasuk pengguna di luar project Anda, akses yang tidak diinginkan ke VM. Untuk informasi selengkapnya, lihat risiko pengelolaan kunci manual.~/.ssh/authorized_keys
pengguna di VM.Menghapus kunci publik dari metadata project
Hapus kunci SSH publik dari metadata project untuk menghapus akses ke semua VM dalam project.
Saat menghapus kunci dari metadata menggunakan gcloud CLI dan Compute Engine API, Anda harus mengambil daftar kunci yang ada, mengedit daftar kunci untuk menghapus kunci yang tidak diinginkan, dan menimpa kunci lama dengan daftar kunci yang ingin Anda pertahankan, seperti yang dijelaskan di bagian berikut.
Konsol
Untuk menghapus kunci SSH publik dari metadata project menggunakan Konsol Google Cloud, lakukan hal berikut:
gcloud
Untuk menghapus kunci SSH publik dari metadata project menggunakan gcloud CLI, lakukan langkah berikut:
REST
Untuk menghapus kunci SSH publik dari metadata project menggunakan Compute Engine API, lakukan hal berikut:
Menghapus kunci SSH publik dari metadata instance
Hapus kunci SSH publik dari metadata instance untuk menghapus akses ke satu VM.
Saat menghapus kunci dari metadata menggunakan gcloud CLI dan Compute Engine API, Anda harus mengambil daftar kunci yang ada, mengedit daftar kunci untuk menghapus kunci yang tidak diinginkan, dan menimpa kunci lama dengan daftar kunci yang ingin disimpan, seperti yang dijelaskan di bagian berikut.
Konsol
Untuk menghapus kunci SSH publik dari metadata instance menggunakan Konsol Google Cloud, lakukan hal berikut:
gcloud
Untuk menghapus kunci SSH publik dari metadata instance menggunakan gcloud CLI, lakukan langkah berikut:
REST
Untuk menghapus kunci SSH publik dari metadata instance menggunakan Compute Engine API, lakukan hal berikut:
Memblokir kunci SSH project dari VM yang menggunakan kunci SSH berbasis metadata
Anda dapat mencegah VM menerima kunci SSH yang disimpan dalam metadata project dengan memblokir kunci SSH project dari VM. Anda dapat memblokir kunci SSH project dari VM saat membuat VM atau setelah membuat VM.
Memblokir kunci SSH project dari VM selama pembuatan VM
Anda dapat memblokir kunci SSH project dari VM selama pembuatan VM menggunakan Konsol Google Cloud, gcloud CLI, atau Compute Engine API.
Konsol
Untuk membuat VM dan memblokirnya agar tidak menerima kunci SSH yang disimpan dalam metadata project menggunakan Konsol Google Cloud, lakukan langkah berikut:
gcloud
Untuk membuat VM dan memblokirnya agar tidak menerima kunci SSH yang disimpan dalam metadata project menggunakan gcloud CLI, gunakan perintah
gcloud compute instances create
:gcloud compute instances create VM_NAME \ --metadata block-project-ssh-keys=TRUE
Ganti
VM_NAME
dengan nama VM baru.REST
Untuk membuat VM dan memblokirnya agar tidak menerima kunci SSH yang disimpan dalam metadata project menggunakan Compute Engine, buat permintaan
POST
ke metodeinstances.insert
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
Ganti kode berikut:
Dalam isi permintaan, berikan nama pengguna dan kunci SSH publik di properti
items
:... { "items": [ { "key": "block-project-ssh-keys", "value": TRUE } ] } ...
Memblokir kunci SSH project dari VM setelah pembuatan VM
Anda dapat memblokir kunci SSH project dari VM setelah pembuatan VM menggunakan Konsol Google Cloud, gcloud CLI, atau Compute Engine API.
Konsol
Untuk mencegah VM menerima koneksi dari kunci SSH yang disimpan dalam metadata project menggunakan Konsol Google Cloud, lakukan tindakan berikut:
gcloud
Untuk mencegah VM menerima koneksi dari kunci SSH yang disimpan dalam metadata project menggunakan gcloud CLI, lakukan tindakan berikut:
Jalankan perintah
gcloud compute instances add-metadata
:gcloud compute instances add-metadata VM_NAME --metadata block-project-ssh-keys=TRUE
Ganti
VM_NAME
dengan nama VM yang kunci SSH publiknya ingin Anda blokir.REST
Untuk mencegah VM menerima koneksi dari kunci SSH yang disimpan dalam metadata project menggunakan Compute Engine API, lakukan tindakan berikut:
Apa langkah selanjutnya?
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2024-11-27 UTC.
-