This is a post for all those beginners just starting off with AWS. I know how frustrating it is to just get beginner level help in an environment where everyone seems to be a server ops expert.

So let’s discuss how to access your new server via SSH.

Wait, why the heck would a beginner ever SSH into a server?

Believe it or not, now that you’re on AWS, all those server administration tasks that were taken for granted are going to haunt you at every corner. You’ll have a newfound appreciation for what hosting providers do and that pesky cPanel you’ve grown to love and hate.

For example, you may have to change file or folder permissions, restart a service like Apache, or modify something that would typically cost time and money if you enlist a contractor. So be awesome and just try to do it yourself!

So here we go with some basics:

Primary Usernames for EC2 Instances:

I wish someone told me this when I first started playing with AWS. You’ll find these type of treasures hidden in Q&A threads, but not in any easy to understand guide in AWS documentation. Depending on the type of EC2 instance you have setup, below are the default / primary usernames:

  • “ec2-user” (Amazon Linux, Red Hat Linux, SUSE Linux)
  • “root” (Red Hat Linux, SUSE Linux)
  • “ubuntu” (Ubuntu Linux distribution)
  • “fedora” (Fedora Linux distribution)

Identify your Ec2 Instance Name

To SSH into your EC2 instance, you’ll need to grab its the EC2 Public DNS URL. It will look something like below:

ec2-12-34-567-890.compute-1.amazonaws.com

To find this Public DNS URL, do the following:

  1. Login to AWS Console – http://aws.amazon.com/
    Sign In or Create an AWS Account
  2. Click on Services on the nav menu, and then select EC2. Click on the Running Instances link
  3. Select the EC2 Instance and make note of the Public DNS URL. That will be the URL you will use to SSH into the server.
EC2 Management Console - Learn how to SSH to EC2 Instance on AWS
Click for larger image

Commands to SSH into EC2 Instance:

Next, let’s get to actually logging into your EC2 instance. To do so, you’ll have to open Terminal (on a Mac), or a SSH client like Putty (if on PC). Then, use the command below based on the type of instance you have. Pay attention to the difference in the primary username.

If Amazon Linux or Red Hat Linux EC2 instance:

ssh -i path/to/AccessKey.pem ec2-user@ec2-12-34-567-890.compute-1.amazonaws.com

If Red Hat Linux or SUSE Linux EC2 instance:

ssh -i path/to/AccessKey.pem root@ec2-12-34-567-890.compute-1.amazonaws.com

If Ubuntu EC2 instance:

ssh -i path/to/AccessKey.pem ubuntu@ec2-12-34-567-890.compute-1.amazonaws.com

If Fedora Linux EC2 instance:

ssh -i path/to/AccessKey.pem fedora@ec2-12-34-567-890.compute-1.amazonaws.com

If necessary, see this guide on how to fix the permission error when SSH into EC2 instance on AWS

That’s it. That’s as short as I can keep this post.

Additional References:

Here’s some additional reading material that I think may be helpful:

That’s it! Keep learning…

7 Responses to "How to SSH to EC2 Instance on AWS (for Beginners)"

  1. Adam   July 9, 2017 at 6:20 pm

    Hi,

    I have tried this multiple times and I receive a “port 22: Operation timed out”…

    I’ve followed various other threads but no luck. I have done the following:

    -Updated inbound rules ( SSH -TCP-22-0.0.0.0/0) (I did not add myIP and just kept it open)
    -Ensured VPC set up properly
    -Ensured ACL ID inbound rules proper as well (a rule does show up with Rule# * that has Deny but I can’t delete it)

    Any help would be appreciated. Thanks!

    Reply
  2. Faisal Athikkai   July 19, 2017 at 5:57 am

    Adam, please also make sure that the port 22 is opened.

    Reply
  3. Anjana   July 19, 2017 at 1:20 pm

    Not related to ec2 instance, i am new to aws, i tried connecting to share data from my pc to aws using jdbc, while developing an app, i tried so many things to resolve it. I am getting perfect answer, everytime i will be getting different errors, really facing many difficulties, please help me if you know solution

    Reply
  4. Christopher Mills   August 16, 2017 at 10:47 am

    ec2-user worked, but hadoop was suggested by aws… why would that be?

    Reply
  5. Jayden   August 30, 2017 at 10:20 pm

    Thanks but I’m getting “Permission Denied” no matter what I try. So frustrating.

    Reply
    • Jayden   August 30, 2017 at 10:22 pm

      Perhaps you could walk us through from start to connection. Eg. how to create the keys. What to do locally, etc. I still can’t resolve this permission denied error even after generating a new private key via the EC2 web interface.

      Reply

Leave a Reply

Your email address will not be published.

Pin It on Pinterest

Shares
Share This