SSH到Elastic Beanstalk实例

我刚刚注册了亚马逊的新Elastic Beanstalk产品,并热爱它。 我无法弄清楚如何SSH到一个Beanstalk实例。 我没有私钥,因为Beanstalk代表我创build实例。 想法?

谢谢,本诺

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

configuration安全组

  1. 在AWS控制台中,打开EC2选项卡。
  2. select相关区域并点击安全组。
  3. 如果在该区域中启动了Elastic Beanstalk实例,则应该有一个elasticbeanstalk-default安全组。
  4. 编辑安全组以添加SSH访问规则。 以下将locking它只允许来自特定IP地址的入口。

     SSH | tcp | 22 | 22 | 192.168.1.1/32 

configurationElastic Beanstalk应用程序的环境

  1. 如果您还没有创build密钥对,请在ec2选项卡中单击“安全组”下的密钥对来创build密钥对。
  2. 在AWS控制台中,打开Elastic Beanstalk选项卡。
  3. select相关区域。
  4. select相关的环境
  5. 在左窗格中selectconfiguration。
  6. select实例。
  7. 在“EC2密钥对”下,在“ Existing Key Pair字段中select密钥对的名称。

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

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

注:为了将密钥对添加到环境configuration中,必须closures实例的终止保护,因为Beanstalk将尝试终止当前实例并使用KeyPair启动新实例。

注意:如果某些东西不起作用,请检查Beanstalk应用程序/环境中的“Events”选项卡,并查明出了什么问题。

弹性beanstalk CLI v3现在支持使用命令eb ssh直接SSH。 例如

 eb ssh your-environment-name 

不需要设置找出EC2实例地址的安全组的麻烦。

还有一个很酷的把戏:

 eb ssh --force 

这会暂时强制端口22打开到0.0.0.0,并保持打开,直到你exit 。 这融合顶部答案的一些好处,没有麻烦。 您可以临时授予除您以外的其他人的debugging权限。 当然,你仍然需要将他们的公钥上传到主机,以便他们有权访问。 一旦你这样做(只要你在eb ssh里面),另一个人就可以

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

我在2013年8月使用linux客户端和简单的AWS Beanstalk安装(单个EC2实例)的经验如下(基于上面的Community Wiki)

configuration安全组

  1. 在AWS控制台中,selectEC2以转到EC2控制台
  2. 通过单击左侧面板上的Instances来发现EC2实例所属的安全组,然后select要连接的实例(在我的情况下只有一个 – 称为Default Environment)。 详细信息显示在页面的底部 – 您应该看到一个安全组的字段 – 记下名称 – 在我的情况下“awsweb …”。
  3. 从左侧面板select安全组。
  4. selectawsweb...安全组,详细信息应显示在页面的底部
  5. select入站选项卡并从“创build新规则”下拉列表中selectSSH。 插入本地计算机的IP地址/ CIDR,例如192.168.0.12/32,然后单击添加规则和应用规则更改。

创build公私钥对

  1. 从EC2仪表板中,从左侧面板中select密钥对
  2. 点击密钥对(位于顶部),然后input一个名称,如myname-key-pair-myregion或任何您喜欢的有效密钥名称。
  3. 确认并接受从浏览器下载的私钥,例如将其保存到您的主目录或您喜欢的任何地方。 确保目录只有你的写权限。

将公用密钥对与Elastic Beanstalk EC2服务器相关联

  1. 要将公钥和私钥对添加到Elastic Beanstalk EC2实例,请执行以下操作:服务 – > Elastic Beanstalk – >我的应用程序 – >默认环境将您带到默认环境(您上传应用程序的环境)
  2. 单击configuration(在左侧面板上),然后在与“实例”关联的齿轮/齿轮上
  3. 显示标题为“服务器”的页面
  4. 从EC2密钥对中select预build的密钥参数,然后执行保存
  5. 显示一些警告消息,所以再次保存。

使用SSH连接到AWS EC2实例

  1. 在terminal会话中切换到包含您的私钥(.pem文件)的目录。
  2. 如果你有几次这样做,你应该做一些关于.ssh / known_hosts如果你有一个如重命名。 否则,您可能会收到有关主机身份已更改的错误。
  3. 做:ssh -i ./myname-key-pair-my-region.pem ec2-user@ec2-some-address.us-west-2.compute.amazonaws.com

祝你好运

我一直在玩这个。

  1. 转到您的弹性beanstalk服务选项卡
  2. 在您的应用程序概述转到操作 – >编辑configuration
  3. 将显示在EC2选项卡(对于相同区域)中的密钥名称添加到现有密钥对框中,然后单击应用更改

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

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

EC2实例的“实例操作”菜单中有一个方便的“连接”选项。 它会给你准确的SSH命令来执行正确的URL实例。 Jabley的整体说明是正确的。

如果使用弹性bean和EB CLI,只需使用eb sshlogin到实例即可。 您可以使用以下链接中指定的选项http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb3-ssh.html

您需要直接使用其公有IP地址连接到ec2实例。 您无法使用elasticbeanstalkurl进行连接。

您可以在ec2控制台中查找实例IP地址。

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

警告:您应该知道弹性beanstalk可以随时replace您的实例。 状态不能保证你的任何弹性beanstalk实例。 它可能更好地使用ssh进行testing和debugging,因为你修改的任何东西都可以随时消失。

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

1)在AWS Dashboard中,selectElasticBeanstalk服务2)select要使用的应用程序。 3)select“configuration”4)在“实例”configuration框中select齿轮(设置)图标。 5)这将带您进入一个名为“服务器”的页面,您可以在其中使用所需的密钥对更新“EC2密钥对”下拉字段,然后select“保存”。

有一件事要注意的是,这可能不适用于具有多个实例的应用程序(但我相信,如果它们全都在与密钥对相同的区域中)。

我之前也遇到过同样的问题。 我想使用密钥文件,但是亚马逊说某处不能将密钥文件添加到现有的EC2服务器。 对于第一个Beanstalk应用程序,Amazon为您预configuration应用程序。 您需要创build一个新的应用程序,并且可以configuration运行Beanstalk应用程序的EC2服务器以使用旧的pem文件(如果使用Putty,则为ppk),或者可以创build一个新的应用程序。 现在你应该可以通过SSH了。

在这里输入图像说明

然后configuration,然后删除您的旧应用程序。