我刚刚注册了亚马逊的Elastic Beanstalk新产品。我不明白的是如何SSH到Beanstalk实例。我没有私钥,因为Beanstalk代表我生成了实例。


当前回答

Elastic Beanstalk可以将单个EC2对绑定到实例概要文件。让多个用户ssh进入EBS的手动解决方案是在authorized_keys文件中添加他们的公钥。

其他回答

Elastic Beanstalk可以将单个EC2对绑定到实例概要文件。让多个用户ssh进入EBS的手动解决方案是在authorized_keys文件中添加他们的公钥。

我也一直在玩这个。

去你的弹性豆茎服务标签 在你的应用程序概览开始行动——>编辑配置 将出现在EC2选项卡中的密钥名称(对于同一区域)添加到现有的密钥输入框中,然后点击apply changes

该服务将重新启动,所以煮5分钟咖啡

在相同区域的ec2选项卡上,您将看到新的运行实例。 使用3中添加的密钥,SSH到公共DNS名称为ec2-user 如。 ssh ec2 - user@ec2 - xx - xxx - xx xxx.compute - 1. amazonaws.com

我来这里是为了寻找一种方法,在配置期间向Beanstalk创建的实例添加一个键(我们使用Terraform)。您可以在Terraform中执行以下操作:

resource "aws_elastic_beanstalk_environment" "your-beanstalk" {
   ... 
   setting {
      namespace = "aws:autoscaling:launchconfiguration"
      name      = "EC2KeyName"
      value     = "${aws_key_pair.your-ssh-key.key_name}"
   }
   ...
}

然后,您可以使用该密钥SSH进入该盒子。

使用当前UI为ElasticBeanstalk ec2实例设置键对的方向是: 警告:这将需要更新ElasticBeanstalk App中的EC2实例。 注意:在此之前,您需要在EC2仪表板中创建一个密钥对。

1)在AWS仪表板中,选择ElasticBeanstalk服务 2)选择要使用的应用程序。 3)选择“配置” 4)在“实例”配置框中选择齿轮(设置)图标。 5)这将带你到一个名为“服务器”的页面,在那里你可以更新“EC2密钥对”下拉字段与你想要的密钥对,并选择“保存”。

需要注意的一点是,这可能不适用于具有多个实例的应用程序(但我认为,如果它们都与密钥对位于同一区域,则可能如此)。

我发现这是一个两步的过程。这假设您已经设置了一个访问相关区域中的EC2实例的密钥对。

配置安全组

在AWS控制台中,打开EC2选项卡。 选择相关区域并单击Security Group。 如果您已经在该区域中启动了一个Elastic Beanstalk实例,那么您应该有一个elasticbeanstalk-default安全组。 编辑安全组,添加SSH访问规则。下面将锁定它,只允许从特定的IP地址进入。 SSH | tcp | 22 | 22 | 192.168.1.1/32

配置Elastic Beanstalk应用程序的环境

如果您还没有创建密钥对,请单击ec2选项卡中Security Group下面的密钥对。 在AWS控制台中,打开Elastic Beanstalk选项卡。 选择相关区域。 选择相关环境 在左侧窗格中选择“配置”。 选择安全。 在“EC2密钥对:”下,在“现有密钥对”字段中选择您的密钥对的名称。

如果在这些步骤之后,您看到“运行状况”设置为“已降级”

这是正常的,这只是意味着EC2实例正在更新。等几秒钟就会好的

实例重新启动后,需要从AWS Console EC2实例选项卡或通过API获取主机名。然后您应该能够ssh到服务器上。

$ ssh -i path/to/keypair.pub ec2-user@ec2-an-ip-address.compute-1.amazonaws.com

注意:要向环境配置中添加一个keypair,实例的终止保护必须关闭,因为Beanstalk将尝试终止当前实例并使用keypair启动新实例。

注意:如果有什么东西不工作,检查Beanstalk应用程序/环境中的“Events”选项卡,找出哪里出了问题。