Answers:
在EC2上,所有Ubuntu AMI都应按以下方式连接:
$ ssh -i your-ssh-key.pem ubuntu@external.dns.name
因此,您可以使用在启动时注入实例的ssh密钥(不是密码)以“ ubuntu”用户身份进行连接。身份验证后,您可以使用sudo发出无密码的root命令。
(注意:您的ssh密钥可能是.priv或.pem,或者没有扩展名,这只是一个示例)
以下是一些有关连接到EC2实例的方便资源:
启动实例并选择或创建新的SSH密钥对:http ://docs.amazonwebservices.com/AWSEC2/latest/GettingStartedGuide/index.html? LaunchInstance.html
使用ssh密钥对进行连接:http ://docs.amazonwebservices.com/AWSEC2/latest/GettingStartedGuide/index.html? ConnectToInstanceLinux.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
如果您始终使用登录到EC2主机,ubuntu
甚至可以将其设置为使用标准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