This article aims to show you how to connect your server using SSH with the PEM key file. You will also learn how to set up a secure connection to your remote server from different platforms like Windows, Linux, and macOS.
How to connect to an instance using a PEM Key from Windows
Windows OS users can use PuTTY to connect to the server. PuTTY is a free and open-source terminal emulator that supports network protocols like SSH, SCP, and Telnet.
Using PuTTY, you can make an SSH connection between the server and your window's client. You can download PuTTY from its official website.
Next, you should convert the PEM file to PPK format, as PuTTY only understands PPK format.
Convert .pem to .ppk using PuTTYgen
You will need PuTTYgen to generate a .ppk file.
1. Install PuTTYgen tool.
Normally PuTTYgen should be included into PuTTY, but if it is not then you can install it from: https://puttygen.com/download-putty. Now, open PuTTYgen and Load your pem key by clicking the "Load" button.
Here, you will see the "Load private key" window. Change the PuTTY Private Key Files (*.ppk) option to "All Files" as shown below.
Now, select the PEM file that you want to convert into PPK.
Click the "Open" button, and then click "OK" as outlined in the screenshot below.
Here, you will see a key comment as "imported-openssh-key." You can replace it with your server name or something easily identifiable by you for your own convenience. This comment will be displayed on PuTTY windows when you connect to the server.
Click the "Save private key" button.
It shows the PuTTYgen Warning dialog box. Click the "Yes" button as shown below:
Now, give ppk a name of your choice. In our case, it is mysql.ppk
Congratulations! You have successfully converted PEM to PPK.
2. Connect to the server using PPK
Now, using this PPK Key file, we can connect to the server using PuTTY.
Open PuTTY, select Session as shown below. Then, enter a Hostname: (your server IP) and Port: (SSH Port).
Next, select the SSH option on the left, expand it, select Auth, and click the "Browse" button.
It will open "Select Private key file" windows, go to your PPK file path and select PPK file.
Next, click on the "Open" button.
Here, you need to enter your server username, and you will be directly connected to your server using PuTTy on Windows.
Did not find the solution? Join our discord channel and consult with our tech experts
Still don't know how to check? Get system administration help from our partners
How to connect to a server using a PEM key file from Linux
If you are a Linux OS user, you can easily connect to the server using the PEM key.
Let's first run the command as it is shown below:
ssh -i demopem.pem root@18.118.78.142
Here, -i is used for an identity file (private key). In this case, it will be a PEM key.
Output:
root@ubuntu-20:~# ssh -i demopem.pem ubuntu@18.118.78.142
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'demopem.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "demopem.pem": bad permissions
ubnutu@18.118.78.142: Permission denied (publickey).
root@ubuntu-20:~#
As we can see from the above output, there is a permission issue with the PEM file
Run the following command to check file permission:
ls -la demopem.pem
Output:
root@ubuntu-20:~# ls -la demopem.pem
-rw-r--r-- 1 root root 1704 Nov 28 15:35 demopem.pem
Here, PEM file permission is 644.
We need to change the PEM file permission to 400. To do so, run the following command in terminal:
chmod 400 demopem.pem
ls -l demopem.pem
Output:
root@ubuntu-20:~# chmod 400 demopem.pem
root@ubuntu-20:~# ls -l demopem.pem
-r-------- 1 root root 1704 Nov 28 15:35 demopem.pem
Now, execute the following command:
ssh -i demopem.pem ubuntu@18.118.78.142
Output:
root@ubuntu-20:~# ssh -i demopem.pem ubuntu@18.118.78.142
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'demopem.pem' are too open.
It is required that your private key files are NOT accessible by others.
You have successfully connected to the server using the PEM key from Your Linux OS.
Could not find the answer? Join our discord channel and consult with other developers and system administrators
Need help from a tech expert? Get system administration help from our partners