CKAD Tips: How to create & connect to a Google Cloud VM using SSH on Mac/Linux
Getting Started with CKAD: What did I struggle with?
What is the Google Cloud Compute Engine?
Prerequisites
Ready? Let’s dive in.
Creating the VM Instance on Google Cloud Compute Engine
Connecting to GCP VM from your CLI using SSH
Connecting to GCP VM from your CLI using the gcloud
command-line tool
Welcome to the second article of my CKAD Tips series where I share my learnings while studying for the CKAD.
Every week, I will demystify Kubernetes concepts you need to know before taking the CKAD and simplify them using real-life examples to make preparing for and passing the CKAD easier for you.
Getting Started with CKAD: What did I struggle with?
In the Kubernetes for Developers course taken in preparation for the CKAD exam, the tutor only explained how to connect to a Google Cloud Compute virtual machine (VM) from a Windows machine using SSH but didn’t explain how to implement it on a Mac or Linux machine.
And as someone who wasn’t familiar with GCP, I struggled with figuring out how to replicate the same thing on a macOS machine until I figured it out. I knew someone else might encounter the same problem, so I decided to write about it.
In this article, you will learn how to create a virtual machine on the cloud using the Google Cloud Compute Engine and how to connect to that VM from your CLI using SSH on a macOS or Linux machine.
What is the Google Cloud Compute Engine?
One of the key components of the Google Cloud Platform (GCP) is the Compute Engine. The Compute Engine is a secure and customizable compute service that lets you create and run virtual machines from a standard or custom image on Google’s infrastructure.
Virtual machines (popularly called VMs) are essential in many situations as they are cost-effective, can be used to test your applications against other operating systems, and improve IT efficiency, amongst other things.
VMs can be installed on your local desktop, but they could potentially reduce the performance or speed of your computer. So, why not create one on the cloud, use it for your testing or experimentation, and shut it down when you are done.
Prerequisites
Thanks to the power of cloud computing, you don’t need a lot to set this up. Here’s what you need:
- A macOS or Linux machine
- A Google Cloud account
- gcloud CLI installed on your machine
Ready? Let’s dive in.
The Google Cloud Compute Engine uses key-based SSH authentication to establish connections to Linux virtual machine instances.
After creating the VM, you’ll need to perform several configurations to connect the VM to your CLI. If you use the gcloud command-line tool to connect to your VMs, the Compute Engine will perform these configurations on your behalf, but if you want to do it manually, you’d have to perform these configurations yourself. Don’t fret! We will cover both methods in this tutorial.
Creating the VM Instance on Google Cloud Compute Engine
Of course, before we can “connect” a VM to our CLI, we need to have created that VM first, and that’s what we will be covering in this section of the tutorial. If you already have an existing VM on Google Cloud and want to delve into learning how to connect it to your CLI via SSH, you can skip this section and go to the Connecting to GCP VM from your CLI using SSH section of this article.
The first thing you need to do is create a project on the Google Cloud Platform. To do this, click on NEW PROJECT, add a name, ID, organization (if any) and click on the CREATE button.
Google Cloud Compute (GCE) requires a new VPC to be created and a firewall rule allowing all traffic to be included. So, now that you have a project running let’s set up the VPC and firewall rule.
To do this, go to the navigation bar at the top-left corner of your screen and click on VPC Network. Here you’ll be required to enable the Compute Engine API (The Compute Engine API allows you to create & run VMs on GCP) on your project following the instructions displayed on your screen.
As soon as you’ve enabled the Compute Engine API, you’ll now be able to access the default VPC network created by Google. You can choose to use the default VPC network or create yours by clicking on CREATE VPC NETWORK.
You can then add a name and description for the VPC network, select a region, & IP address range for the subnet, and click on the Create button to complete the VPC creation process.
The next thing you need to do is add your preferred firewall rules to your newly created VPC network. To do this, go to Firewall on the navbar and click on CREATE FIREWALL RULE.
Here, you’ll add a name and description for the firewall rule, and select the VPC network you just created in the Network field.
In the Targets field, select the All instances in the network option, add an IP range, click on the Allow all checkbox and finally, click on CREATE to complete the firewall rule and VPC network creation process.
Now that you’ve completely set up your VPC network with its firewall rule, you can go ahead and create the VM on Google Cloud by going to the Compute Engine on the navigation bar and clicking on the VM Instances option.
Here, you can either use the default settings or update them to meet your needs & business specification. In my case, I added a name, used Ubuntu as my OS, selected the N1 machine type, and increased the size to 20GB.
After completing the configuration steps above, click on the Create Instance button and voila — a new VM now running on Google Cloud.
Connecting to GCP VM from your CLI using SSH
Now that you’ve created a VM on GCP, you can now connect it to your CLI using SSH.
If you don’t have an existing SSH key, here’s how to generate one. Now, copy your public SSH key, go back to the GCP user interface and click on the name of your VM instance (As seen in the image above), click on Edit, scroll down to the SSH Keys section, click on the Add an Item button, and paste your public SSH key.
Before clicking on the Save button, take note of the username of your SSH key displayed right beside your public SSH key as you’ll need that later.
When you eventually click on the Save button, you’ll be redirected back to the VM instances page where you’ll see the External IP of your VM instance. Take note of it as you’ll need it soon.
With your SSH key now added, you can now connect the VM instance to your CLI using it. To do this, run the command below on your CLI:
ssh -i id_rsa edidiongasikpo@34.123.123.244
Replace:
- with the location of your private key
id_rsa
- with the username of your public SSH key
edidiongasikpo
- with the external IP of your VM instance
34.123.123.244
Ensure that you are currently inside the path where your SSH key is saved using
cd <ssh folder>
If you did everything correctly, your VM instance should now be connected to your CLI and ready for use. 😃
Connecting to GCP VM from your CLI using the gcloud
command-line tool
gcloud
The difference between the method explained above & using the gcloud command-line tool is that gcloud automatically creates & manages the SSH key for you.
This means you won’t need to manually generate and paste your public SSH key in the VM configuration page or even add the path of your private SSH key when you are connecting to the VM from your CLI.
To use the gcloud command-line tool, ensure is installed on your computer. After confirming, run this command
gcloud auth login
Once you are logged in, you have to tell gcloud which project you want to work on and you can do that by running this command:
gcloud config set project PROJECT_ID
Sometimes, the default zone on your gcloud might not be the same as your new projects and this can trigger some errors. So, it is always advisable to set the zone of your project. You can do that by running this command:
gcloud config set compute/{insert your zone here}
With everything set up correctly now, you are ready to run the final command (see it below) that will connect your VM on Google Cloud to your CLI:
glcoud compute ssh {name of your VM instance}
A few seconds after running this command, you’ll see that you’ve successfully been able to connect to the Google Cloud Compute VM from your CLI using the cloud command-line tool. 🎉
Note: Always shut down your VM instances after using them to avoid being charged.
I covered a lot of ground in this article, and I really appreciate that you made it all the way to the end. 😃