修改/ etc / hosts以轻松访问amazon EC2实例的域名(或IP地址)

我以前添加到我的本地(Mac OS X 10.6)/ etc / hosts文件我的服务器的公共IP如下所示:

123.123.123.123 myServer 

让我ssh到myServer,而不必记住服务器的IP地址,并正常工作(使用SHH公钥),如下所示:

 ssh myServer1 

但是,在Amazon EC2实例中,我尝试使用提供的公共dns地址和/ etc / hosts中的方法来做同样的事情,我添加了这个:

 ec2-23-23-23-23.compute-1.amazonaws.com myServer2 

但是当我尝试ssh myServer2说'主机名不能解决'

任何想法,为什么这是行不通的? 我怎样才能做这个工作?

我想要使​​用的完整命令是:

 ssh -i key.pem [email protected] 

我正在尝试创build一个可能是这样的捷径:

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

有任何想法吗?

更新:我用别名,而不是更容易:

添加了.bash_profile(MAC OS x)

 alias myServer='ssh -i /path/to/key.pem [email protected]' 

(需要再次closures并打开terminal或者使用source〜/ .bash_profile)然后在命令行上使用myServer来执行ssh $ myServer

请阅读有关SSH客户端configuration的内容,而不是编辑hosts文件。

您可以在~/.ssh/config创build主机别名。 例如:

 Host myServer2 HostName ec2-23-23-23-23.compute-1.amazonaws.com UserName username 

如果你只使用SSH,这将工作正常。 如果您需要访问其他服务,请设置DNS,或使用SSH(使用-L )进行端口转发。

/etc/hosts的行格式是

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

所以你必须指定一个IP地址作为第一个字段。 这就是为什么你尝试使用EC2主机名不起作用。

不pipe怎样,您都不需要这样做,因为(如果DNSparsing正在工作)名称将通过DNS查找来parsing。