我以前添加到我的本地(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。