Nafies Luthfi

Life will always feel wonderful if we always think positively.

Cara Akses VM Instance GCE dari Terminal Ubuntu 16.04

Bismillahirrahmanirrahim.

Beberapa artikel yang lalu kita bahas tentang Google Cloud Engine (GCE), yaitu VPS dari google. Pada artikel tentang deploy VM Instance kemarin, kita dapat mengakse VPS tersebut dengan SSH melalui pop-up window browser dari Google Cloud Platform (GCP). Kita tidak dapat mengakses vps tersebut langsung melalui terminal.

Misal kita punya VM Instance dengan External IP Address: 35.194.38.27.

$ ssh nafiesl@35.194.38.27 
Permission denied (publickey).

Kalau terus-terusan mengakses melalui pop-up window browser di GCP Console, sepertinya lumayan merepotkan. Karena harus buka GCP Console dulu baru bisa login ke VM Instance (VPS) nya. Kita kan inginnya serba cepat ya? Langsung SSH dari terminal Ubuntu kan enak? :D

Bagaimana caranya agar kita langsung bisa akses melalui terminal kita? Pada artikel ini kita bahas langkah-langkahnya.

  1. Install Google Cloud SDK (gcloud).
  2. Setup gcloud compute (ijin akses google cloud SDK).
  3. SSH dengan gcloud.
  4. Akses langsung dengan SSH terminal (tanpa gcloud).

Install Google Cloud SDK (gcloud)

Satu-satunya cara bisa akses melalui terminal Ubuntu adalah menggunakan aplikasi Google Cloud SDK. Silakan buka halaman dokumentasi Google Cloud SDK, pilih OS yang sesuai, saya menggunakan Ubuntu 16.04, maka pilih Install for Debian / Ubuntu.

Sesuai petunjuk di dokumentasi tersebut, kita jalankan perintah-perintah berikut untuk install Google Cloud SKD.

# Create an environment variable for the correct distribution
export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)"

# Add the Cloud SDK distribution URI as a package source
echo "deb http://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list

# Import the Google Cloud Platform public key
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

# Update the package list
sudo apt-get update 

# Install the Cloud SDK
sudo apt-get install google-cloud-sdk

Selesai proses installasi, uji coba perintah gcloud -v.

$ gcloud -v
Google Cloud SDK 188.0.1
alpha 2018.02.08
beta 2018.02.08
bq 2.0.28
core 2018.02.08
gsutil 4.28

Sip, artinya aplikasi gcloud sudah terinstall di Ubuntu kita.

Set up gcloud compute

Untuk memulai akses ke VM Instance kita di Google Cloud Engine (GCE), kita lakukan setup gcloud compute. Jalan kan perintah gcloud init, kita akan mendapatkan tampilan berikut, ikuti langkahnya :

$ gcloud init

Welcome! This command will take you through the configuration of gcloud.
Your current configuration has been set to: [default]
To continue, you must login. Would you like to login (Y/n)?  y

Your browser has been opened to visit:

https://accounts.google.com/o/oauth2/auth?scope=https%3A%2F%2Fwww.googleapis.co%2
Fauth%2Fappengine.admin+https%3A%2F%2...

Browser akan terbuka, kemudian kita diminta untuk login dengan akun google sesuai yang kita gunakan untuk GCP, kemudian ijinkan akses untuk Google Cloud SDK.

Setelah berhasil login, kembali ke terminal dan akan muncul pilihan project pada GCP.

Created new window in existing browser session.
[28187:28222:0212/215654.452498:ERROR:browser_gpu_channel_......
You are logged in as: [........@gmail.com].

Pick cloud project to use: 
 [1] api-project-6587......
 [2] balm......
 [3] inspe......
 [4] jw......
 [5] nafi......
 [6] youtube-chann......
 [7] Create a new project
Please enter numeric choice or text value (must exactly match list 
item):  5

Masukkan nomor cloud project yang ingin kita gunakan, silakan isi dengan nomor project sesuai dengan nama project yang kita buat saat mendaftar pada GPC. Dalam hal ini, saya pilih nomor 5. Lanjutkan proses jika ada pertanyaan selanjutnya, sampai selesai.

Sampai di sini kita sudah berhasil set up gcloud compute. Artinya dengan perintah :

$ gcloud compute ssh username@my-vps

seharusnya kita sudah dapat akses SSH langsung dari terminal Ubuntu kita.

SSH dengan gcloud

Oke, sekarang kita coba ssh ke VM Instance kita melalui terminal dengan perintah :

$ gcloud compute ssh nafiesl@my-vps

Prosesnya lebih kurang seperti ini :

$ gcloud compute ssh nafiesl@my-vps
WARNING: The public SSH key file for gcloud does not exist.
WARNING: The private SSH key file for gcloud does not exist.
WARNING: You do not have an SSH key for gcloud.
WARNING: SSH keygen will be executed to generate a key.
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/....../.ssh/google_compute_engine.
Your public key has been saved in /home/....../.ssh/google_compute_engine.pub.
The key fingerprint is:
SHA256:+QLtoU95kCnibbK1ZSf3PU...... ......@kingpinn

Updating project ssh metadata...-Updated [https://www.googleapis.com.....].
Updating project ssh metadata...done.     
Waiting for SSH key to propagate.

...

Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.13.0-1008-gcp x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

Get cloud support with Ubuntu Advantage Cloud Guest:
http://www.ubuntu.com/business/services/cloud

0 packages can be updated.
0 updates are security updates.


Last login: Mon Feb 12 23:26:47 2018 from 202.67.32.89
nafiesl@my-vps:~$

Catatan : Jika ada kegagalan dalam proses, coba ditambahkan command option yang sesuai, misal --zone, panduannya ada pada dokumentasi gcloud-compute bagian connecting.

Akses Langsung dengan SSH Terminal?

Sekarang, check this out :

$ ssh nafiesl@35.194.38.27
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.13.0-1008-gcp x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  Get cloud support with Ubuntu Advantage Cloud Guest:
    http://www.ubuntu.com/business/services/cloud

0 packages can be updated.
0 updates are security updates.


Last login: Mon Feb 12 14:46:07 2018 from 173.194.93.34
nafiesl@my-vps:~$ 

Yes! Karena (PC/laptop) kita sudah pernah terhubung kita melalui gcloud, sekarang kita bisa langsung ssh ke VM Instance dengan perintah ssh username@ip-address-vm-instance.

Mantap!

Catatan

  1. Agar dapat ssh ke VM Instance melalui terminal, kita harus menginstall Google Cloud SKD (gcloud) dan memberikan ijin akses ke project di GPC.
  2. Sepanjang yang saya tahu, secara default kita tidak mendapat akses root, kita mendapatkan user ubuntu dengan nama yang sama dengan username gmail kita.
  3. Jika kita lakukan gcloud compute ssh my-vps (tanpa username google), maka gcloud akan membuat login/user sesuai dengan username PC/Laptop kita.
  4. Jika ada kegagalan dalam koneksi ssh, pastikan teman-teman menambahkan command option yang sesuai, misal --zone, cek panduannya pada dokumentasi gcloud-compute bagian connecting.

Sip, selesai. Demikian pembahasan kita tentang cara akses VM Instance GCE dari terminal Ubuntu 16.04. Mudah-mudahan bermanfaat bagi teman-teman yang memerlukan. Jika ada yang ingin didiskusikan, silakan tuliskan pada kolom komentar.

Terima kasih atas waktunya. :D