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

修改 /etc/hosts 以轻松访问亚马逊 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] 

我正在尝试创建一个可能如下所示的快捷方式:

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]' 

(需要关闭并再次打开终端或使用源 ~/.bash_profile )然后只需在命令行上使用 myServer 即可进行 ssh $ myServer

答案1

无需编辑hosts文件,请阅读SSH 客户端配置

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

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

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

答案2

行的格式/etc/hosts

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

因此您必须指定 IP 地址作为第一个字段。这就是您尝试使用 EC2 主机名失败的原因。

无论如何您都不需要这样做,因为(如果 DNS 解析有效)名称将由 DNS 查找来解析。

相关内容