我刚刚注册了亚马逊的Elastic Beanstalk新产品。我不明白的是如何SSH到Beanstalk实例。我没有私钥,因为Beanstalk代表我生成了实例。
当前回答
如果您正在使用elastic bean和EB CLI,只需使用EB ssh登录到实例。您可以使用下列链接中指定的选项 http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb3-ssh.html
其他回答
在EC2实例的“实例操作”菜单中有一个方便的“连接”选项。它将为您提供使用实例的正确url执行的确切SSH命令。杰布利的全部指示都是正确的。
使用当前UI为ElasticBeanstalk ec2实例设置键对的方向是: 警告:这将需要更新ElasticBeanstalk App中的EC2实例。 注意:在此之前,您需要在EC2仪表板中创建一个密钥对。
1)在AWS仪表板中,选择ElasticBeanstalk服务 2)选择要使用的应用程序。 3)选择“配置” 4)在“实例”配置框中选择齿轮(设置)图标。 5)这将带你到一个名为“服务器”的页面,在那里你可以更新“EC2密钥对”下拉字段与你想要的密钥对,并选择“保存”。
需要注意的一点是,这可能不适用于具有多个实例的应用程序(但我认为,如果它们都与密钥对位于同一区域,则可能如此)。
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
我发现这是一个两步的过程。这假设您已经设置了一个访问相关区域中的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”选项卡,找出哪里出了问题。
您需要使用ec2实例的公共ip地址直接连接到它。您无法使用elasticbeanstalk url进行连接。
可以通过在ec2控制台中查找实例ip地址。
您还需要确保端口22是开放的。默认情况下,ssh连接完成后,EB CLI会关闭22端口。您可以调用eb ssh -o在ssh会话完成后保持端口开放。
警告:你应该知道弹性豆茎可以在任何时候替换你的实例。在任何弹性豆茎实例上都不能保证状态。最好只将ssh用于测试和调试,因为您所修改的任何内容都可能随时消失。
推荐文章
- 如何查看所有地区所有正在运行的Amazon EC2实例?
- 如何从命令行使用多个AWS帐户?
- 如何搜索亚马逊s3桶?
- 通过SSH使用Eclipse完成远程项目
- 如何强制从另一个SSH会话分离屏幕?
- com.jcraft.jsch.JSchException: UnknownHostKey
- 如何在Python中scp ?
- 在SSH会话中查找客户端的IP地址
- 拒绝访问;您需要(至少一个)SUPER特权来执行此操作
- 我如何使用通配符“cp”一组文件与AWS CLI
- 自定义SSH端口上的Git
- 我如何获得亚马逊的AWS_ACCESS_KEY_ID ?
- 如何使所有对象在AWS S3桶公共默认?
- Git显示“警告:永久添加到已知主机列表”
- 为什么git在Windows下记不住我的密码