Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I previously added into my local(Mac OS x 10.6) /etc/hosts file my server's public ip something like this: myServer

to allow me to ssh to myServer without having to remember the ip address of the server and worked fine (using shh public key) , like this:

ssh myServer1

However on Amazon EC2 instance I tried to do the same using the long public dns address provided and in /etc/hosts I added this: myServer2 

but when I try to ssh myServer2 says that the 'hostname cannot be resolved'

any ideas why this is not working? How can I make this work ?

The complete command I want to use is:

ssh -i key.pem 

and I am trying to create a shortcut which might be something like this:

ssh -l username myServer2 or ssh -i key.pem -l username myServer2

any ideas?

UPDATE: I used alias instead which is easier:

Added this inside .bash_profile (MAC OS x)

alias myServer='ssh -i /path/to/key.pem' 

(need to close and open terminal again or use source ~/.bash_profile ) Then ssh with just using myServer on command line $ myServer

share|improve this question
Instead of Public DNS use either Private DNS or Private IP. – Abhishek Anand Amralkar Jul 25 '13 at 10:15

Instead of editing your hosts file, read about the SSH client configuration.

You can create host aliases in ~/.ssh/config. For example:

Host myServer2
     UserName username

If you're only using SSH this will work fine. If you need to access other services, either set up DNS, or use port forwarding in SSH (with -L).

share|improve this answer
hmm this is interesting too thanks :) – venix Jul 25 '13 at 10:46
Also, to specify which key to use per host, add a line with IdentityFile ~/.ssh/my_ec2_key.pem. To specify default options for hosts not listed, start a block with Host *. – platforms Jul 25 '13 at 11:16

The format of lines in /etc/hosts is

<ip address>  <hostname> [<alias> ...]

so you have to specify an IP address as the first field. This is why your attempt to use the EC2 hostname didn't work.

You shouldn't need to do this anyway, because (if DNS resolution is working) the name will be resolved by a DNS lookup.

share|improve this answer
Hmm but i don't have an ip address, and I can only used, is there an alternative approach to achieve the same thing? I want to create a 'shortcut' to so that instead of ssh -i key.pem to just ssh myServer2 or ssh -i key.pem myServer2 – venix Jul 25 '13 at 10:06
Try host -- that should give you the IP address. Alternatively if you don't have host, try nslookup or one of many websites that'll do the lookup for you. – Flup Jul 25 '13 at 10:07
To create a shortcut you could run a DDNS server somewhere that you can send dynamic updates to when your EC2 instances start. – Flup Jul 25 '13 at 10:08
Thanks for your help, but my bad, because I figure out that I could just use alias inside .bash_profile instead of going all that trouble. Thanks anw – venix Jul 25 '13 at 10:39

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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