当前位置: 首页 > news >正文

通过AWS Console连接服务器,简化运维过程

简单通过AWS Console连接您的Linux服务器

本文作者: 封磊

Eclicktech SA | AWS Community Builder DevTool | AWS UGL | 亚马逊云科技云博主

阿里云&InfoQ&CSDN签约作者

文章目录

  • 简单通过AWS Console连接您的Linux服务器
  • 本文作者: 封磊
  • Eclicktech SA | AWS Community Builder DevTool | AWS UGL | 亚马逊云科技云博主
  • 阿里云&InfoQ&CSDN签约作者
    • 目录
    • 前提条件
    • 情况一:快速启动的标准镜像
      • 默认支持的操作系统
      • 连接步骤
    • 情况二:自定义镜像或Marketplace镜像[CentOS Stream 9 (x86_64) ]
      • 连接测试
        • CentOS Stream 9 镜像:
      • 问题分析
      • 安装EC2 Instance Connect支持【CentOS Stream 9】
        • 安装ec2-instance-connect
        • 在 `/opt/aws/bin/` 文件夹中会看到以下新脚本:
        • 验证是否在实例上成功安装了 EC2 Instance Connect:
      • 替代连接方式
        • 1. 通过密钥对连接
        • 2. 使用Session Manager连接(推荐)
    • 常见问题排查
    • 结语

在AWS上部署EC2实例后,我们通常需要通过SSH连接到Linux服务器进行管理。AWS提供了多种连接方式,其中EC2 Instance Connect是最便捷的一种,无需配置密钥对或SSH客户端,即可直接在浏览器中连接您的实例。

本文将介绍两种常见的情况:

  • 快速启动的标准镜像(Amazon Linux 2、Ubuntu 等)
  • 来自Marketplace的自定义镜像(如Nginx预装包、第三方Linux发行版等)

并详细讲解如何确保实例支持EC2 Instance Connect功能。


目录

  • 前提条件
  • 情况一:快速启动的标准镜像
    • 默认支持的操作系统
    • 连接步骤
  • 情况二:自定义镜像或Marketplace镜像
    • 问题分析
    • 安装EC2 Instance Connect支持
    • 替代连接方式
  • 常见问题排查
  • 结语

前提条件

  1. EC2实例已成功运行。
  2. 实例的安全组已开放入站SSH端口(22)。
  3. IAM角色允许使用 EC2 Instance Connect(权限:ec2-instance-connect:SendSSHPublicKey)。
  4. 实例处于可用区且绑定了公共IP地址或有公网访问能力。

情况一:快速启动的标准镜像

AWS在快速创建EC2实例时,提供了常见镜像如Amazon Linux、Ubuntu等,它们默认已预安装EC2 Instance Connect所需组件。

默认支持的操作系统

以下AMI通常默认支持EC2 Instance Connect:

  • Amazon Linux 2
  • Amazon Linux 2023
  • Ubuntu 20.04 / 22.04(部分版本)
  • Debian 10+

⚠️ 注意:某些操作系统如CentOS 7、Red Hat Enterprise Linux、SUSE 等,默认可能未安装此功能。

连接步骤

  1. 登录 AWS Console。
  2. 打开 EC2 控制台 > 实例 页面。
  3. 选择目标实例,点击【连接】按钮。
  4. 在弹出的窗口中选择【EC2 Instance Connect】标签。
  5. 点击【连接】按钮,即可在浏览器中打开终端。


情况二:自定义镜像或Marketplace镜像[CentOS Stream 9 (x86_64) ]

当您从 AWS Marketplace 启动实例,或使用第三方导入镜像时,系统中可能未安装 EC2 Instance Connect 所需组件,此时点击连接会提示“连接失败”。

连接测试

CentOS Stream 9 镜像:

https://aws.amazon.com/marketplace/pp/prodview-k66o7o642dfve?applicationId=AWSMPContessa&ref_=beagle&sr=0-1

问题分析

EC2 Instance Connect 依赖以下组件支持:

  • 操作系统用户 ec2-userubunturoot
  • ec2-instance-connect 服务包(用于接收公钥)
  • openssh-server 启动并监听22端口

缺少任一组件都可能导致连接失败。

安装EC2 Instance Connect支持【CentOS Stream 9】

需要通过密钥对连接到服务器,手动安装支持:

安装ec2-instance-connect
mkdir /tmp/ec2-instance-connect
curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-2.0.0-3.rhel9.x86_64.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect.rpm
curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-selinux-2.0.0-3.noarch.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
sudo yum install -y /tmp/ec2-instance-connect/ec2-instance-connect.rpm /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
<font style="color:rgb(15, 20, 26);background-color:rgb(243, 243, 247);">/opt/aws/bin/</font> 文件夹中会看到以下新脚本:
eic_run_authorized_keys

验证是否在实例上成功安装了 EC2 Instance Connect:
sudo less /etc/ssh/sshd_config.d/60-ec2-instance-connect.conf

确保存在默认登录用户(如 ec2-userubuntu),并且具有sudo权限。

如果 <font style="color:rgb(15, 20, 26);background-color:rgb(243, 243, 247);">AuthorizedKeysCommand</font><font style="color:rgb(15, 20, 26);background-color:rgb(243, 243, 247);">AuthorizedKeysCommandUser</font> 行包含以下值,则成功安装 EC2 Instance Connect:

AuthorizedKeysCommand /opt/aws/bin/eic_run_authorized_keys %u %f
AuthorizedKeysCommandUser ec2-instance-connect

  • <font style="color:rgb(15, 20, 26);background-color:rgb(243, 243, 247);">AuthorizedKeysCommand</font> 设置 <font style="color:rgb(15, 20, 26);background-color:rgb(243, 243, 247);">eic_run_authorized_keys</font> 文件以从实例元数据中查找密钥
  • <font style="color:rgb(15, 20, 26);background-color:rgb(243, 243, 247);">AuthorizedKeysCommandUser</font> 将系统用户设置为 <font style="color:rgb(15, 20, 26);background-color:rgb(243, 243, 247);">ec2-instance-connect</font>

替代连接方式

若不能使用EC2 Instance Connect,建议使用以下替代方案:

1. 通过密钥对连接
  • 启动实例时使用密钥对(PEM文件)
  • 使用本地SSH客户端:
ssh -i "your-key.pem" ec2-user@<your-public-ip>
2. 使用Session Manager连接(推荐)
  • 确保实例绑定了带有Session Manager权限的IAM角色
  • 安装 SSM Agent(若未安装)
  • 安装 AWS CLI 并配置好权限
  • 在 AWS Console 中点击【连接 > Session Manager】

常见问题排查

问题原因解决办法
浏览器连接按钮灰色实例不支持EC2 Connect检查AMI是否支持,或改用密钥对连接
连接超时安全组未开放端口检查22端口是否开放
提示无默认用户镜像缺省用户非 ec2-user自定义AMI时配置正确用户名或调整SSH配置
密钥无效错误的密钥对或用户检查使用的密钥文件是否匹配实例

结语

EC2 Instance Connect 是AWS提供的一种无缝、免密钥连接实例的方式,适用于日常运维和临时访问。标准Amazon镜像可直接使用,而自定义镜像则可能需要额外配置。推荐合理选择镜像、配置权限和安全组,并熟练掌握替代连接方案,确保实例随时可用。

如果您对Marketplace镜像或自定义环境有更多需求,也可以考虑结合CloudInit自动安装Connect组件,提升运维效率。


如需帮助自动检测AMI是否支持EC2 Instance Connect,欢迎留言获取自动化脚本!

相关文章:

  • 企业出海降本:如何将应用从 AWS EC2 快速无缝迁移至DigitalOcean Droplet
  • 揭开应用程序的神秘面纱:深入了解 AWS X-Ray
  • 【docker】启动临时MongoDB容器、挂载数据卷运行数据库服务,并通过备份文件恢复MongoDB数据库备份数据
  • SQLMesh增量模型实战指南:时间范围分区
  • nginx 核心功能
  • 鸟笼效应——AI与思维模型【84】
  • 组件轮播与样式结构重用实验
  • Android开发——实现一个计算器
  • 利用3DMAX + Corona Renderer打造现代住宅逼真效果!
  • DotNet 入门:(一) 环境安装
  • MarkItDown:如何高效将各类文档转换为适合 LLM 处理的 Markdown 格式
  • 进程优先级以及切换调度
  • 得物 小程序 6宫格 分析
  • C++/SDL 进阶游戏开发 —— 双人塔防(代号:村庄保卫战 16)
  • opencv 直方图均衡化
  • AimRT 从零到一:官方示例精讲 —— 三、Executor示例.md
  • 【AI News | 20250429】每日AI进展
  • OpenCV 图形API(71)图像与通道拼接函数-----从图像(GMat)中裁剪出一个矩形区域的操作函数 crop()
  • gitee 如何修改提交代码的邮箱
  • 训练神经网络的批量标准化(使用 PyTorch)
  • 俄罗斯纪念卫国战争胜利80周年阅兵式首次彩排在莫斯科举行
  • 东风着陆场做好各项搜救准备,迎接神舟十九号航天员天外归来
  • 准80后湖北省财政厅副厅长徐晶华已调任襄阳市副市长
  • 书业观察|一本书的颜值革命:从毛边皮面到爆火的刷边书
  • 企业取消“大小周”引热议,半月谈:不能将显性加班变为隐性加班
  • 柳州警方通报临牌车撞倒行人:扣留涉事车辆,行人无生命危险