【问题标题】:SSH into EC2 Spot Instance通过 SSH 连接到 EC2 Spot 实例
【发布时间】:2017-08-01 22:28:51
【问题描述】:

这是我第一次使用现货市场的 ec2 实例。我假设它与任何普通实例一样通过 SSH 进入。我提交了一个请求并得到了一个回复,但现在由于某种原因,当我尝试使用公共 IP 进行 SSH 连接时,我遇到了一个超时错误。提交 Spot 请求后,除了等待有人填写,我还需要做什么吗?

【问题讨论】:

  • 当您请求现场实例时,您是否选择了正确的密钥对?安全组中的 Spot 实例是否开放了 22 端口?
  • 我选择了正确的密钥对,只有一个。如何检查端口 22?
  • @MarkB 在 Instance Description 下,Security Groups - View Rules 声明所有端口都是开放的。
  • @MarkB 没错,我必须添加 SSH 规则。谢谢!

标签: amazon-web-services ssh amazon-ec2


【解决方案1】:

正如许多其他用户评论的那样,ssh 需要做两件事

  1. 在启动实例时分配aws key-pair
  2. 分配一个security group with ssh permission

要检查您的实例是否满足这两个条件,您可以转到aws EC2 Management console,在实例选项卡中单击您的实例,检查是否有关联的Key pair name,以及@ 987654325@入站规则包含端口22 tcp协议。

如果使用 boto3 启动,命令将如下所示

    rc = ec2.create_instances(ImageId=ubuntu_64bit,                            
                              InstanceType='t2.nano',                          
                              MinCount=1,                                      
                              MaxCount=n_workers,                              
                              KeyName='my-key',                               
                              )  

这里我使用了默认的安全组,并添加了ssh权限。

满足这些条件后,就可以使用

登录实例了

ssh -i /path/my-key-pair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com

根据您加载的图像,用户名可能会有所不同。可能的包括ec2-usercentosubunturoot

【讨论】:

    【解决方案2】:

    ssh 超时错误意味着此现场实例上的port 22 不对您开放。检查安全组并添加您的位置 IP,允许访问端口 22

    【讨论】: