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


当前回答

您需要使用ec2实例的公共ip地址直接连接到它。您无法使用elasticbeanstalk url进行连接。

可以通过在ec2控制台中查找实例ip地址。

您还需要确保端口22是开放的。默认情况下,ssh连接完成后,EB CLI会关闭22端口。您可以调用eb ssh -o在ssh会话完成后保持端口开放。

警告:你应该知道弹性豆茎可以在任何时候替换你的实例。在任何弹性豆茎实例上都不能保证状态。最好只将ssh用于测试和调试,因为您所修改的任何内容都可能随时消失。

其他回答

Elastic beanstalk CLI v3现在支持直接SSH命令eb SSH。如。

eb ssh your-environment-name

不需要设置安全组来查找EC2实例地址。

还有一个很酷的技巧:

eb ssh --force

这将临时强制端口22打开为0.0.0.0,并保持它打开,直到您退出。这混合了上面答案的一些好处,没有麻烦。您可以临时授予除您之外的其他人调试和诸如此类的访问权限。当然,您仍然需要将他们的公钥上传到主机,以便他们能够访问。一旦你这样做了(只要你在eb ssh内部),其他人就可以

ssh ec2-user@ec2-xx-xxx-xxx-xx.compute-1.amazonaws.com

如果您正在使用elastic bean和EB CLI,只需使用EB ssh登录到实例。您可以使用下列链接中指定的选项 http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb3-ssh.html

我也一直在玩这个。

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

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

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

根据您的环境配置,在为您的环境创建的EC2实例上可能没有公共IP地址。你可以通过以下方法查看:

转到EC2控制台 找到实例并检查Description选项卡 如果没有公共IP…… 在导航中单击“弹性IPs” 单击“分配新地址” 选择亚马逊的泳池 点击分配

最后,选择您的新EIP并从操作菜单中选择关联地址。将该IP与EC2实例关联。您现在应该能够使用eb ssh连接。

可以通过执行eb ssh——setup命令重置连接详细信息。

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

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

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