You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Boto3创建无Key-Pair的实例用于测试?

可以用Boto3创建不带Key-Pair的EC2实例吗?

当然没问题!这种方式特别适合不需要远程登录的测试场景,比如验证实例能否正常启动、基础网络配置是否生效这类轻量需求。下面我会一步步告诉你怎么做,还有需要注意的细节:

核心操作逻辑

  • 省略KeyName参数即可:在调用Boto3的run_instances方法时,完全不写KeyName字段,或者将其设为None,就会创建不带密钥对的实例。
  • 确认AMI兼容性:绝大多数公共AMI(比如Amazon Linux 2、Ubuntu Server系列)都支持无密钥对启动,但部分自定义AMI可能做了限制,建议先用公共AMI验证流程。

代码示例

下面是一个完整的Python代码片段,演示如何创建不带密钥对的测试实例:

import boto3

# 初始化EC2客户端(替换成你的目标AWS区域)
ec2_client = boto3.client('ec2', region_name='us-east-1')

# 发起实例创建请求
create_response = ec2_client.run_instances(
    ImageId='ami-0c55b159cbfafe1f0',  # 示例:us-east-1区域的Amazon Linux 2公共AMI
    InstanceType='t2.micro',
    MinCount=1,
    MaxCount=1,
    SecurityGroups=['your-test-security-group'],  # 替换成你的测试用安全组
    # 关键:这里没有设置KeyName参数
)

# 输出创建的实例ID
instance_id = create_response['Instances'][0]['InstanceId']
print(f"已成功创建无密钥对实例,ID: {instance_id}")

后续访问的替代方案

如果测试过程中需要远程访问实例,不用慌,有这些替代方法:

  • Systems Manager Session Manager:只要实例预装了SSM Agent(Amazon Linux 2、Ubuntu等默认自带),并且实例关联了具备SSM权限的IAM角色,就能通过AWS控制台或CLI远程连接,完全不需要密钥对。
  • 用户数据注入配置:对于Linux实例,可以通过UserData字段注入cloud-init脚本,设置临时登录凭证;Windows实例则可以注入PowerShell脚本设置管理员密码(记得确保安全组开放对应端口)。

小提醒

  • Linux实例无密钥对时,默认无法通过SSH登录,所以如果测试需要登录,优先用Session Manager。
  • Windows实例如果创建时未指定密钥对,无法通过EC2控制台的“获取密码”功能获取初始密码,建议提前通过用户数据配置好登录方式。

内容的提问来源于stack exchange,提问作者EPR20

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:49:52