启用EC2-Connect功能基于浏览器发起SSH管理连接

注:2023年新发布的Amazon Linux 2023,已经预先安装了软件包ec2-instance-connect,无须手工安装。

一、背景

AWS海外区域推出了基于网页版SSH客户端的EC2 Instance Connect功能,可以用于连接到Linux系统。使用效果如下图。

EC2 Instance Connect功能是一个基于WEB界面的SSH工具,是通过网络连接来访问EC2的。因此使用这个功能的要求是:

  • EC2具有EIP可从外网访问
  • 且安全规则组放行了EC2 Instance Connect客户端的地址范围

对于已经存在的虚拟机,连接到一个现有的虚拟机,会出现黑屏的情况,需要进一步完成如下配置。

二、配置EC2 Instance Connect

1、为老版本操作系统安装EC2 Instance Connect软件包

注:Amazon Linux 2023版本已经预装本软件包,可跳过本步骤。

使用root身份执行如下命令。

yum install ec2-instance-connect
systemctl start ec2-instance-connect.service
systemctl enable ec2-instance-connect.service

以上命令将安装EC2 Connect所需要的软件包。

2、打开安全规则组允许EC2 Instance Connect

接下来需要在本机上打开安全规则组,放行来自EC2 Connect服务的IP地址的请求。

查询IP地址的方法是从这里下载包含AWS所有IP网段的原始JSON文件。

下载后,查找关键字 EC2_INSTANCE_CONNECT 然后再查找当前对应的Region。注意不同Region的EC2 Connect使用的IP段是不相同的。例如,新加坡ap-southeast-1 的EC2 Instance Connect服务的源地址范围是3.0.5.32/29,将这个地址段填写到安全规则组的Inbound的放行地址段中。

三、发起连接测试

现在,从EC2控制台上,选中要连接的EC2,点击Connect按钮,如下截图。

点击第一个标签页启动EC2 Instance Connect,即可在网页上使用SSH连接到虚拟机。如下截图。

四、参考文档:

使用 EC2 Instance Connect 连接到 Linux 实例:

https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/Connect-using-EC2-Instance-Connect.html