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:
- Login to AWS Console – http://aws.amazon.com/
- Click on Services on the nav menu, and then select EC2. Click on the Running Instances link
- 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.
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:
- AWS – Connecting to Linux Instances
- How to fix the permission error when SSH into EC2 instance on AWS
That’s it! Keep learning…
Advertise on Amazon? Download our Free Amazon PPC Management Guide
14 Responses
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!
Hi Adam – It’s very possible that your server doesn’t have SSH enabled.
Refer to this post for explanation of why that operation times out.
https://unix.stackexchange.com/questions/229431/why-are-all-my-ssh-attempts-failing-due-to-timeout
Adam, please also make sure that the port 22 is opened.
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
ec2-user worked, but hadoop was suggested by aws… why would that be?
Thanks but I’m getting “Permission Denied” no matter what I try. So frustrating.
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.
Where actually the path is? i mean ssh -i /path/file.pem this directory isnt there for me, can you help me find where i can actually find my .pem file
how to put EC2 against access key?
Thank you!
I am a new learner, I connected to ec2 instance using ssh. what can we do after connecting to ec2, I mean like why exactly we need to connect to ec2 using even though we can login to aws account
Loki – similar to all the things you can do when you login to cPanel for example, you can do by logging into the EC2. It’s same concept. For those that are comfortable with CLI, this is how they typically perform operations on the server.
That was actually very helpful for beginner. I liked the user name part specially because being a beginner no one tells us these details and we are left stuck at this small point and unable to progress. Thanks for an easy to understand tutorial
How can I do this without specifying -i every time: