如何为Amazon EC2实例设置SSH访问?

时间:2011-06-18 08:17:38

标签: ubuntu amazon-ec2 ubuntu-10.04

我需要SSH访问运行Ubuntu 10.4的Amazon EC2实例。我得到的只是亚马逊的用户名和密码。有什么想法吗?

13 个答案:

答案 0 :(得分:155)

基本上,您需要私钥文件才能通过SSH登录EC2。请按照以下步骤创建一个:

  • 转到https://console.aws.amazon.com/ec2/home&登录您现有的亚马逊帐户。
  • 点击LHS或https://console.aws.amazon.com/ec2/home?region=us-east-1#s=KeyPairs上的“密钥对”。
    • 您应该会看到您(或在EC2创建过程中)生成的KEY列表。
    • 如果您没有看到任何私钥,请点击“创建密钥对”。
    • 输入唯一名称并按Enter键。
    • 将出现一个下载面板供您保存私钥,保存即可。
    • 使用文件权限“0600”
    • 将其保留在某处
  • 点击LHS上的“实例”或https://console.aws.amazon.com/ec2/home?region=us-east-1#s=Instances
    • 您应该看到ec2-instances列表,如果您没有看到,请创建一个。
    • 单击EC2计算机并记下公共DNS地址。
  • 打开终端(在Linux中)并键入以下命令
    • ssh -i /path/to/private-key root@<ec2-public-dns-address> - 根据您的分发选择ec2-userubuntu作为您的用户名,在最新版本中避免使用root用户名。
    • 点击Enter
    • 就是这样。

答案 1 :(得分:23)

ssh -i /path/to/private-key ubuntu@<ec2-public-dns-address>

只需使用ubuntu代替root。你的问题将得到解决。 干杯!

答案 2 :(得分:10)

步骤1)下载分配给ec2计算机的私钥 (创建时只下载一次。所以建议在某处提交)

步骤2)并点击命令,

chmod 400 MyKeyPair.pem
ssh -i MyKeyPair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com

官方文档Connecting to Your Linux/Unix Instances Using SSH

答案 3 :(得分:7)

注意,13.04的当前用户是“ubuntu” ssh -i ./mykey.pem ubuntu@ec2-xxx-xxx-xxx-1.compute-1.amazonaws.com

答案 4 :(得分:4)

您需要先创建一个密钥对 - 使用您的EC2控制台执行此操作。然后使用您的私钥使用您选择的SSH客户端SSH连接到服务器(用户名为ec2-user)。

一旦进入,您可以根据需要发出sudo su -以获得root权限(注意:您无法直接以root用户身份登录)。

答案 5 :(得分:3)

如果您使用的是MacOS,则应创建/编辑SSH配置文件(〜/ .ssh / config)并输入如下内容:

Host *.amazonaws.com
    User ubuntu
    Port 22
    StrictHostKeyChecking no
    UserKnownHostsFile=/dev/null
    IdentityFile ~/PATH/YOUR_DOWNLOADED_KEY.pem

然后连接到任何EC2实例:

ssh MYNAME.amazonaws.com

没有更多!

答案 6 :(得分:1)

要在AWS上设置Ubuntu,请按照以下步骤操作:

  1. 登录Amazon Web Services并选择 EC2
  2. 选择启动实例并按照向导选择正确的映像(Ubuntu),实例类型,配置VPC网络和子网,存储并允许安全组中的SSH访问。然后启动
  3. 您可能需要首次设置密钥对并将其分配给实例。您还可以在密钥对中创建密钥对。创建后,下载PEM文件并将其保存在安全的地方。
  4. 实例启动后,请等待实例已初始化正在运行
  5. 要通过SSH访问实例,请运行:

    1. 通过指定PEM文件连接到Linux框,例如

      ssh -i "file.pem" ubuntu@x.x.x.x
      

      确保您的PEM文件具有600个权限(chmod 600 file.pem)。

    2. 疑难解答

      如果您正在运行VPC实例,并且您的安全组正确(使用正确的规则)并且仍然无法正常工作,请在 VPC 部分中检查您的子网应附加到您的 VPC (您的实例都使用)并在路由表中设置新规则{ {1>}为目标 Internet网关目标

      有关详细信息,请查看:Troubleshooting Connecting to Your Instance

      另请参阅:Possible reasons for timeout when trying to access EC2 instance

答案 7 :(得分:1)

1)首先.pem file chmod 400 my-key-pair.pem 用于限制文件权限,如下所示

ssh

2)然后 .ssh直接来自ssh -i my-key-pair.pem ec2-user@ec2-198-99-90-3.compute-1.amazonaws.com文件夹

.ssh命令

Ctrl + H

注意: - 导航到cd .ssh文件夹。首先按{{1}}显示所有隐藏文件,最后按{{1}}

答案 8 :(得分:0)

没有以正确的用户身份登录OS Distro可能是个问题。对于某些新的AMI,用户名可能不是&#34; ubuntu&#34;,而是&#34; ec2-user&#34;。例如,对于Amazon Linux,我相信用户是&#34; ec2-user&#34;。 Eric Hammond在这里举例说明:http://alestic.com/2014/01/ec2-ssh-username

我的建议,试试:

ssh -i /path/to/file.pem ec2-user@ec2...

ssh -i /path/to/file.pem ubuntu@ec2...

ssh -i /path/to/file.pem root@ec2...

如果您的AMI错误,您可能只想重新启动计算机,以便在群集中保持一致。如果这是您的问题,您可能至少需要相同的OS Distro至于您的Linux机箱。

答案 9 :(得分:0)

在所有这些答案中做出建议是不够​​的。针对每个实例,您会看到一个安全组。当您启动新实例时,您将此事件设置为默认值。您需要编辑安全组并添加ssh端口。稍后,当您想要托管您的网站时,您还需要添加8080,8443,80,443端口。

答案 10 :(得分:0)

确保检查这些内容

  1. 私钥必须具有400个权限

  2. 确保您尝试访问的AWS实例的端口22已打开。

  3. ssh -i privatekey.pem ubuntu@XXX.XXX.XXX.XXX // XXX.XXX.XXX.XXX =您的实例public ip

答案 11 :(得分:0)

我接受AWS提议使用默认安全组,其中包括&#39; All Trafic&#39;端口。

并且,经过多次尝试连接我的新ec2实例后,我才意识到我应该编辑我使用过的安全组并手动添加到入站和出站22端口(ssh)!

希望它有所帮助!

答案 12 :(得分:0)

首先通过

更改pem文件的权限
chmod 400 path/to/key_pair.pem

在文件〜/ .ssh / config中添加以下行,位于文件顶部

Host AWS
     Hostname myserver.com
     User myuser
     IdentityFile path/to/.pem/file
     port 22

主机名取服务器的IP或链接,用户取服务器的用户名,身份文件是创建实例时从AWS下载的文件。 只需在终端

中运行以下命令
ssh AWS

并享受它!

注意:导航到.ssh文件夹。首先按主文件夹中的Ctrl + H以显示所有隐藏文件,最后显示cd .ssh