我刚刚注册了亚马逊的Elastic Beanstalk新产品。我不明白的是如何SSH到Beanstalk实例。我没有私钥,因为Beanstalk代表我生成了实例。
当前回答
以上答案有点陈旧。
首先创建一个密钥对,然后将其附加到Elastic Beanstalk环境。
创建密钥对的步骤
登录AWS 服务—> EC2 .单击“确定” 在左边的网络和安全下选择密钥对 选择创建新的密钥对,键入密钥名称,然后单击创建。 密钥将自动下载到您的系统中。
将创建的密钥对附加到Elastic Beanstalk环境的步骤
AWS ->服务->弹性豆茎 选择您的环境并单击左侧的配置。 在“配置概览”中选择“安全性”中的“修改”。 在“虚拟机权限”下选择我们创建的密钥对。 单击“保存”,然后单击“保存配置”。
这将花费一些时间反映到您的EC2实例。
其他回答
使用当前UI为ElasticBeanstalk ec2实例设置键对的方向是: 警告:这将需要更新ElasticBeanstalk App中的EC2实例。 注意:在此之前,您需要在EC2仪表板中创建一个密钥对。
1)在AWS仪表板中,选择ElasticBeanstalk服务 2)选择要使用的应用程序。 3)选择“配置” 4)在“实例”配置框中选择齿轮(设置)图标。 5)这将带你到一个名为“服务器”的页面,在那里你可以更新“EC2密钥对”下拉字段与你想要的密钥对,并选择“保存”。
需要注意的一点是,这可能不适用于具有多个实例的应用程序(但我认为,如果它们都与密钥对位于同一区域,则可能如此)。
在mac上,你可以使用brew安装命令行:
brew install awsebcli
使用命令行工具,您可以ssh:
eb ssh environment-name
也可以做其他的运算。这假设您已经添加了一个允许从您的ip进行ssh的安全组。
Elastic Beanstalk可以将单个EC2对绑定到实例概要文件。让多个用户ssh进入EBS的手动解决方案是在authorized_keys文件中添加他们的公钥。
不要将ssh密钥添加到elastic beanstalk
正如其他人指出的那样,现在可以使用elastic beanstalk cli eb ssh连接到ec2实例。
如果你不能使用eb cli,而是使用awscli,或者来这里寻找一种简单的方法来ssh到任何ec2实例而不需要主密钥对,你也可以使用awscli aws ec2-instance-connect,如这里所述。
注意,cli方法要求您修改安全策略以允许ssh连接,而eb为您处理这两个问题。
这两种方法都需要一个带有EC2实例连接的AMI,这是目前的默认情况,比直接关联密钥更可取,因为您可以允许多个用户以这种方式连接,密钥只添加了很短的时间,您不需要预先考虑它,并且您可以通过IAM保持集中控制权限。如果密钥持有者离开团队,则不需要额外移除。 一般来说,我建议现在不要在ec2上设置ssh密钥对
Amazon发布了一种通过SSM (Simple Systems Manager) SSH到实例的更好方法。SSM中的会话管理器工具允许您仅使用AWS API密钥进行SSH。它比常规的SSH更好,因为:
不需要开22端口。 它保存SSH会话的日志。 它不需要共享SSH密钥。凭证绑定到IAM用户,就像他们应该做的那样。 它适用于没有公共IP地址且位于私有子网中的实例。
设置您的Elastic Beanstalk环境以允许通过AWS SSM进行SSH
以下步骤需要对每个环境执行一次。
进入Elastic Beanstalk > ENVIRONEMNT_NAME > Configuration > Security目录,找到“IAM实例配置文件”(默认为“aws-elasticbeanstalk-ec2-role”)。这是步骤2中的ROLE_NAME。 进入IAM > Roles > ROLE_NAME。在权限下,添加“AmazonSSMManagedInstanceCore”。 进入“系统管理>会话管理>首选项>编辑”。启用“以支持方式运行”,并将“以默认用户方式运行”设置为“ec2-user”(或者您的Elastic Beanstalk服务器的任何默认用户)。
注意,传播IAM更改可能需要一段时间(~10分钟)。如果您已经完成AWS设置,并得到“TargetNotConnected”错误,请等待10-15分钟后再试一次。
SSH与AWS SSM
设置好这些后,你现在有三个选项来SSH到你的实例:
通过AWS web控制台。进入“AWS系统管理器>会话管理器>开始会话”。选择您想要SSH进入的机器。这将在浏览器中启动SSH终端。 使用AWS CLI。请参阅下面“AWS CLI设置”的说明。 使用eb-ssm。EB -ssm是一个命令行工具,是EB CLI命令EB ssh的直接替代品。它通过封装AWS CLI和装载EB CLI配置来实现这一点。请注意,eb-ssm还需要下面的“AWS CLI设置”步骤
AWS CLI设置
如果您希望从您的终端使用AWS CLI或eb-ssm进行SSH,请执行以下步骤。这些步骤需要在每台计算机上执行一次。
安装AWS命令行:https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html 安装会话管理器插件:https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html
免责声明:我是eb-ssm的主要作者。
推荐文章
- 如何查看所有地区所有正在运行的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下记不住我的密码