首页 文章

SSH到Elastic Beanstalk实例

提问于
浏览
250

我刚刚注册了亚马逊的新Elastic Beanstalk产品 . 我无法弄清楚如何SSH到Beanstalk实例 . 我没有私钥,因为Beanstalk代表我生成了实例 .

10 回答

  • 407

    前一段时间我也遇到了同样的问题 . 我想使用密钥文件,但亚马逊说某处你无法将密钥文件添加到现有的EC2服务器 . 对于第一个Beanstalk应用程序,Amazon会为您预先配置该应用程序 . 您需要创建一个新的应用程序,并且可以配置运行Beanstalk应用程序的EC2服务器以使用旧的pem文件(如果使用Putty,则为ppk),或者您可以创建一个新的应用程序 . 现在你应该能够SSH了 .

    enter image description here

    然后配置,然后删除旧的应用程序 .

  • 107

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

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

    需要注意的一点是,对于具有多个实例的应用程序,这可能不起作用(但我相信如果它们都与密钥对位于同一区域) .

  • 28

    Elastic beanstalk CLI v3现在支持使用命令 eb ssh 的直接SSH . 例如 .

    eb ssh your-environment-name
    

    无需为设置安全组找到EC2实例地址而烦恼 .

    还有这个很酷的伎俩:

    eb ssh --force
    

    这将暂时强制端口22打开到0.0.0.0,并保持打开直到你 exit . 这混合了最佳答案的好处 a bit ,没有麻烦 . 您可以临时授予您访问以外的其他人进行调试等等 . 当然你'll still need to upload their public key to the host for them to have access. Once you do that (and as long as you'在 eb ssh 内,另一个人可以

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

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

    配置安全组

    • 在AWS控制台中,打开EC2选项卡 .

    • 选择相关区域,然后单击安全组 .

    • 如果已在该区域中启动Elastic Beanstalk实例,则应具有 elasticbeanstalk-default 安全组 .

    • 编辑安全组以添加SSH访问规则 . 以下将锁定它以仅允许从特定IP地址进入 .

    SSH | tcp | 22 | 22 | 192.168.1.1/32
    

    配置Elastic Beanstalk应用程序的环境

    • 如果尚未创建密钥对,请通过单击ec2选项卡中安全组下方的密钥对来创建密钥对 .

    • 在AWS控制台中,打开Elastic Beanstalk选项卡 .

    • 选择相关区域 .

    • 选择相关环境

    • 在左窗格中选择配置 .

    • 选择实例 .

    • 在"EC2 key pair:"下,在 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应用程序/环境中的“事件”选项卡,找出问题所在 .

  • 2

    我也一直在玩这个 .

    • 转到弹性beanstalk服务选项卡

    • 在您的应用程序概述转到操作 - >编辑配置

    • 将EC2选项卡(对于相同区域)中显示的键的名称添加到现有密钥对框并点击应用更改

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

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

  • -3

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

  • 9

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

    配置安全组

    • 在AWS控制台中,选择EC2以转到EC2仪表板

    • 通过单击左侧面板中的Instances,然后选择要连接的实例(在我的情况下只有一个 - 称为默认环境),发现EC2实例所属的安全组 . 详细信息显示在页面底部 - 您应该看到安全组的字段 - 制作一个记下这个名字 - 在我看来是"awsweb..." .

    • 从左侧面板中选择安全组 .

    • 选择 awsweb... 安全组,详细信息应显示在页面底部

    • 选择Inbound选项卡,然后从"Create a New Rule"下拉列表中选择SSH . 插入本地计算机的IP地址/ CIDR(您打算从中连接),例如192.168.0.12/32并单击“添加规则”和“应用规则更改” .

    创建公钥 - 私钥对

    • 从EC2仪表板中,从左侧面板中选择Key Pairs

    • 单击密钥对(在顶部)并输入名称,例如myname-key-pair-myregion或您喜欢的任何有效密钥名称 .

    • 确认并接受从浏览器下载私钥,例如将其保存到您的主目录或您喜欢的任何位置 . 确保该目录仅具有您的写入权限 .

    将公钥私钥对与Elastic Beanstalk EC2服务器关联

    • 要将公钥 - 私钥对添加到Elastic Beanstalk EC2实例,请执行以下操作:服务 - > Elastic Beanstalk - >我的应用程序 - >默认环境将您带到默认环境(您上传应用程序的环境)

    • 单击配置(在左侧面板上),然后单击与"Instances"关联的齿轮/齿轮

    • 显示名为"Server"的页面

    • 从EC2密钥对中选择预先构建的密钥并执行保存

    • 显示一些警告消息,因此请再次保存 .

    使用SSH连接到AWS EC2实例

    • 在终端会话中更改为包含您的私钥(.pem文件)的目录 .

    • 如果've had a few goes at this you should probably do something about .ssh/known_hosts if you have one such as renaming it. Otherwise you may get an error about the host'的身份发生了变化 .

    • 执行:ssh -i ./myname-key-pair-my-region.pem ec2-user@ec2-some-address.us-west-2.compute.amazonaws.com

    祝好运

  • 5

    EC2实例的“实例操作”菜单中有一个方便的“连接”选项 . 它将为您提供准确的SSH命令,以使用正确的实例URL来执行 . Jabley的整体说明是正确的 .

  • 3

    您需要使用其公共IP地址直接连接到ec2实例 . 您无法使用elasticbeanstalk网址进行连接 .

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

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

    警告:您应该知道弹性beanstalk可以随时替换您的实例 . 您的任何弹性beanstalk实例都不保证状态 . 最好只使用ssh进行测试和调试,因为你修改的任何内容都可以随时消失 .

  • 43

    以上答案有点旧 .

    首先创建一个密钥对,然后将其附加到Elastic Beanstalk环境 .

    Steps to create a key-pair

    • 登录AWS

    • 服务 - > EC2

    • 在NETWORK&SECURITY左下方选择密钥对

    • 选择“创建新密钥对”,键入密钥名称,然后单击“创建” . 密钥将自动下载到您的系统 .

    Steps to attach created key pair to Elastic Beanstalk environment

    • AWS - >服务 - > Elastic Beanstalk

    • 选择您的环境,然后单击左侧的配置 .

    • 在配置概述中,从安全性中选择修改 .

    • 在虚拟机权限下,选择我们创建的密钥对 .

    • 单击“保存”,然后单击“保存配置” .

    这需要一些时间来反映您的EC2实例 .

相关问题