我刚刚注册了亚马逊的新Elastic Beanstalk产品。我无法弄清楚如何SSH到Beanstalk实例。我没有私钥,因为Beanstalk代表我生成了实例。
我发现这是一个两步的过程。这假设您已经设置了密钥对来访问相关区域中的EC2实例。
elasticbeanstalk-default
安全组。SSH | tcp | 22 | 22 | 192.168.1.1/32
Existing Key Pair
字段中选择密钥对的名称。实例重新启动后,您需要从AWS Console EC2实例选项卡或通过API获取主机名。然后,您应该能够ssh到服务器上。
$ ssh -i path/to/keypair.pub [email protected]
注意:要将密钥对添加到环境配置,必须关闭实例的终止保护,因为Beanstalk将尝试终止当前实例并使用KeyPair启动新实例。
注意:如果出现问题,请检查Beanstalk应用程序/环境中的“事件”选项卡,找出问题所在。
我来到这里寻找一种方法来添加一个密钥到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}"
}
...
}
然后,您可以使用该密钥进入框中。
根据您的环境配置,您可能没有在为您的环境创建的EC2实例上具有公共IP地址。您可以查看:
最后,选择新的EIP并从操作菜单中选择关联地址。将该IP与您的EC2实例相关联。您现在应该能够使用eb ssh
进行连接。
您可以通过运行eb ssh --setup
重置连接详细信息。
前一段时间我也遇到了同样的问题。我想使用密钥文件,但亚马逊说某处你无法将密钥文件添加到现有的EC2服务器。对于第一个Beanstalk应用程序,Amazon会为您预配置该应用程序。您需要创建一个新的应用程序,并且可以配置运行Beanstalk应用程序的EC2服务器以使用旧的pem文件(如果使用Putty,则为ppk),或者您可以创建一个新的应用程序。现在你应该能够SSH了。
然后配置,然后删除旧的应用程序。
Elastic beanstalk CLI v3现在支持使用命令eb ssh
进行直接SSH。例如。
eb ssh your-environment-name
无需设置安全组来查找EC2实例地址的麻烦。
还有这个很酷的伎俩:
eb ssh --force
这将暂时迫使端口22打开到0.0.0.0,并保持打开直到你exit
。这样可以在没有麻烦的情况下融合顶级答案的一些好处。您可以临时授予您访问以外的其他人进行调试等等。当然,您仍然需要将他们的公钥上传到主机才能让他们有权访问。一旦你这样做(只要你在eb ssh
内),另一个人就可以
ssh [email protected]
我在2013年8月使用linux客户端和简单的AWS Beanstalk安装(单个EC2实例)的经验如下(基于上面的社区Wiki)
awsweb...
安全组,详细信息应显示在页面底部祝好运
EC2实例的“实例操作”菜单中有一个方便的“连接”选项。它将为您提供准确的SSH命令,以使用正确的实例URL执行。 Jabley的整体说明是正确的。
我也一直在玩这个。
该服务将重新启动,所以煮5分钟咖啡
在同一区域的ec2选项卡上,您将看到新的运行实例。使用3中添加的密钥将公共DNS名称ssh改为ec2-user ssh [email protected]
以上答案有点旧。
首先创建一个密钥对,然后将其附加到Elastic Beanstalk环境。
创建密钥对的步骤
将创建的密钥对附加到Elastic Beanstalk环境的步骤
这需要一些时间来反映您的EC2实例。
如果您使用弹性bean和EB CLI,只需使用eb ssh
登录实例。您可以使用以下链接http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb3-ssh.html中指定的选项
您需要使用其公共IP地址直接连接到ec2实例。您无法使用elasticbeanstalk网址进行连接。
您可以在ec2控制台中查找实例IP地址。
您还需要确保端口22已打开。默认情况下,EB CLI在ssh连接完成后关闭端口22。在ssh会话完成后,您可以调用eb ssh -o来保持端口打开。
警告:您应该知道弹性beanstalk可以随时替换您的实例。您的任何弹性beanstalk实例都不保证状态。最好只使用ssh进行测试和调试,因为你修改的任何内容都可以随时消失。
使用当前UI为ElasticBeanstalk ec2实例设置密钥对的方向是:警告:这将需要更新ElasticBeanstalk应用程序中的EC2实例。注意:在此之前,您需要在EC2仪表板中创建一个密钥对。
1)在AWS Dashboard中,选择ElasticBeanstalk服务2)选择要使用的应用程序。 3)选择“配置”4)在“实例”配置框中选择齿轮(设置)图标。 5)这将带您进入标题为“服务器”的页面,您可以在其中使用所需的密钥对更新“EC2密钥对”下拉字段,然后选择“保存”。
需要注意的一点是,对于具有多个实例的应用程序,这可能不起作用(但我相信它们可能与密钥对在同一区域)。