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!


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.


from command line, just like this:

$ ssh username@exampleservername.com -i yourpemfile.pem

Then you can login to the server.


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 user@123.456.789:~/.ssh/

SSH into the server and attached the pem file as follows: ssh -i ~/.ssh/my-old.key.pem user@123.456.789 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 user@123.456.789.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.