我刚刚注册了Amazon的新Elastic Beanstalk产品。我不知道如何通过SSH连接到Beanstalk实例。我没有私钥,因为Beanstalk代表我生成了实例。
eb ssh
我刚刚注册了Amazon的新Elastic Beanstalk产品。我不知道如何通过SSH连接到Beanstalk实例。我没有私钥,因为Beanstalk代表我生成了实例。
eb ssh
Answers:
我发现这是一个两步过程。假设您已经设置了密钥对来访问相关区域中的EC2实例。
elasticbeanstalk-default
如果您已在该区域中启动了Elastic Beanstalk实例,则应该有一个安全组。编辑安全组以添加SSH访问规则。下面将其锁定为仅允许从特定IP地址进入。
SSH | tcp | 22 | 22 | 192.168.1.1/32
Existing Key Pair
字段中选择密钥对的名称。 实例重新启动后,您需要从AWS Console EC2实例选项卡或通过API获取主机名。然后,您应该可以SSH到服务器上。
$ ssh -i path/to/keypair.pub ec2-user@ec2-an-ip-address.compute-1.amazonaws.com
注意:要向环境配置中添加密钥对,必须关闭实例的终止保护,因为Beanstalk会尝试终止当前实例并使用KeyPair启动新实例。
注意:如果无法解决问题,请检查Beanstalk应用程序/环境中的“事件”选项卡,并找出问题所在。
弹性beantalk CLI v3现在通过命令支持直接SSH eb ssh
。例如
eb ssh your-environment-name
无需为查找EC2实例地址而设置安全组的所有麻烦。
还有一个很酷的把戏:
eb ssh --force
这将暂时将端口22强制打开为0.0.0.0,并保持打开状态直到您exit
。毫无疑问,这融合了最佳答案的一些好处。您可以临时授予除访问权限以外的其他人进行调试等权限。当然,您仍然需要将其公钥上载到主机,以使其能够访问。一旦这样做(只要您在里面eb ssh
),对方就可以
ssh ec2-user@ec2-xx-xxx-xxx-xx.compute-1.amazonaws.com
eb ssh production
。您也可以使用设置选项设置特定的环境:eb ssh production --setup
我在2013年8月使用Linux客户端和简单的AWS Beanstalk安装(单个EC2实例)的经验如下(基于上述Community Wiki)
awsweb...
安全组,详细信息应显示在页面底部祝好运
我也一直在玩。
服务将重新启动,因此需要煮5分钟的咖啡
在同一区域的ec2选项卡上,您将看到新的运行实例。使用3中添加的密钥以ec2-user身份将ssh转换为公共DNS名称,例如ssh ec2-user@ec2-xx-xxx-xx-xxx.compute-1.amazonaws.com
以上答案有些陈旧。
首先创建一个密钥对,然后将其附加到Elastic Beanstalk环境。
创建密钥对的步骤
将创建的密钥对附加到Elastic Beanstalk环境的步骤
AWS->服务-> Elastic Beanstalk
选择您的环境,然后单击左侧的配置。
在配置概述中,从安全性中选择修改。
在“虚拟机权限”下,选择我们创建的密钥对。
单击保存,然后单击保存配置。
这需要一些时间才能反映到您的EC2实例。
如果您使用的是Elastic bean和EB CLI,只需使用eb ssh
登录实例即可。您可以使用以下链接中指定的选项
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb3-ssh.html
使用当前UI设置ElasticBeanstalk ec2实例的密钥对的方向是:警告:这将需要在ElasticBeanstalk App中更新EC2实例。注意:在此之前,您需要先在EC2仪表板中创建密钥对。
1)在AWS Dashboard中,选择ElasticBeanstalk服务。2)选择要使用的应用程序。3)选择“配置” 4)在“实例”配置框中选择齿轮(设置)图标。5)这将带您进入标题为“服务器”的页面,您可以在其中用所需的密钥对更新“ EC2密钥对”下拉字段,然后选择“保存”。
需要注意的一件事是,这可能不适用于具有多个实例的应用程序(但我相信,如果它们都与密钥对位于同一区域,则可能会出现这种情况)。
我来这里是为了寻找一种在配置过程中向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进入框中。
如果您已经eb init
针对您的环境设置了CLI ,那么它应该很简单
eb ssh --setup
这样一来,您就可以创建一个新的密钥对,或者使用一个存在的现有密钥对。
您也许也可以只连接到现有环境,eb use
尽管我还没有这样做。
有关安装CLI的详细信息-https: //docs.aws.amazon.com/console/elasticbeanstalk/eb-cli-install