问题描述
我刚刚在Amazon EC2上推出了一个Ubuntu Server AMI。
我连接得很好,但我没有看到任何告诉我默认登录凭据的内容。
login as: ?
最佳解决思路
在EC2上,所有Ubuntu AMI都应该像这样连接:
$ ssh -i your-ssh-key.pem ubuntu@external.dns.name
因此,您使用在启动时注入实例的ssh密钥(而不是密码)作为’ubuntu’用户进行连接。经过身份验证后,您可以使用sudo发出password-less根命令。
(注意:你的ssh密钥可能是.priv,或.pem,或者没有扩展名,这只是一个例子)
以下是有关连接EC2实例的一些方便资源:
启动实例并选择或创建新的SSH密钥对:http://docs.amazonwebservices.com/AWSEC2/latest/GettingStartedGuide/index.html?LaunchInstance.html
他们没有提到的是你使用’ubuntu’帐户而不是root连接到Ubuntu实例。
次佳解决思路
额外提示:
-
我更喜欢键入
ssh ubuntu@host
而不是ssh -i your-ssh-key.pem ubuntu@host
。我写了一篇文章,描述了如何执行此操作:将个人ssh密钥上传到Amazon EC2 http://alestic.com/2010/10/ec2-ssh-keys -
如果您始终使用
ubuntu
登录EC2主机,则甚至可以将其设置为使用标准EC2实例公用主机名时的默认值。这样您就可以输入ssh hostname
。要执行此操作,请编辑$HOME/.ssh/config
并添加如下部分:Host *.amazonaws.com User ubuntu
第三种解决思路
作为进一步的选择,如果您不想使用个人ssh密钥(尽管可能是最佳解决方案)但想要简化命令行,请将密钥添加到~/.ssh/
并将以下内容添加到~/.ssh/config
:
Host ec2-xxx-xxx-xxx-xxx.xxxx.compute.amazonaws.com
User ubuntu
IdentityFile ~/.ssh/yourkey.pem
然后你可以简单地使用ssh ec2-xxx-xxx-xxx-xxx.xxxx.compute.amazonaws.com
如果您已将EC2注册到域,则还可以使用以下内容:
Host yourdomain.com
User ubuntu
IdentityFile ~/.ssh/yourkey.pem
然后你可以使用ssh yourdomain.com
最后,要在没有域的情况下简化它,请使用以下别名:
Host myalias
HostName ec2-xxx-xxx-xxx-xxx.xxxx.compute.amazonaws.com
User ubuntu
IdentityFile ~/.ssh/yourkey.pem
然后你可以使用ssh myalias
第四种思路
对于由Bitnami创建的社区AMI,用户名为’bitnami’。
以下是Bitnami快速入门指南中的部分,供参考:
How to log into the BitNami Virtual Machine。