How to use PEM keys from EC2

I understand the concept of "ssh keys" to login to a server without entering a password, however, I am not understanding how/what PEM key files are to log in to EC2 instances.

In the AWS console, I can generate or import a PEM key, but where/how do I use this file on my laptop to login to cloud instances?

Thanks for help!


Solution 1:

Or you can create an entry on your .ssh/config as follows:

host myserver
hostname ec2-xx-xx-xx-xx.eu-west-1.compute.amazonaws.com
user username
IdentityFile path/to/your.pem

So after that you can ssh to your server like this: ssh myserver

According to PEM files, it's also good keep a copy in a safe place as it can not be regenerated.

Solution 2:

The other answers here are great, assuming that the destination server already has the .pem file's public key. In my case, I created a .pem file to access an existing server, which was not configured for my newly generate key. So here is how I managed to set up my server for access using my newly created .pem key:

Create the public key from the .pem file: ssh-keygen -y -f my-new-key.pem > my-new-key.pub

Transfer the key to my server: scp -i ~/.ssh/my-old-key.pem /path/to/my-new-key.pub [email protected]:~/.ssh/

SSH into the server and attached the pem file as follows: ssh -i ~/.ssh/my-old.key.pem [email protected] and run cat ~/.ssh/my-new-key.pub >> ~/.ssh/authorized_keys

Now, you can ssh into your server using your newly generated .pem key! ie ssh -i ~/.ssh/my-new-key.pem [email protected].

Solution 3:

from command line, just like this:

$ ssh [email protected] -i yourpemfile.pem

Then you can login to the server.