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

Windows环境下如何通过aws ec2 create-key-pair命令生成PEM文件?

在Windows系统中生成AWS密钥对PEM文件的方法

我之前也碰到过一模一样的情况——用AWS CLI创建密钥对后,控制台只返回带PEM内容的JSON,完全没自动生成本地文件。别担心,按下面的步骤就能轻松搞定:

方法一:手动创建(适合新手)

  • 首先,从返回的JSON里完整复制KeyMaterial字段的值,一定要确保包含开头的-----BEGIN RSA PRIVATE KEY-----和结尾的-----END RSA PRIVATE KEY-----(你的示例内容没写完,实际API返回会有完整的结尾标记)。注意把JSON里的\n换成实际的换行符,或者更简单的是重新执行命令时加上--query "KeyMaterial" --output text,这样返回的就是纯文本格式的PEM内容,没有转义字符,复制起来更省心。
  • 打开Windows记事本,粘贴刚才复制的完整PEM内容。
  • 点击「文件」→「另存为」,文件名填MyKeyPair.pem,必须把保存类型改成「所有文件」(不然会默认存成txt格式),编码选择「UTF-8」,然后选一个你方便找到的路径(比如桌面)。
  • 关键步骤:设置文件权限。Windows下SSH客户端会严格要求密钥文件只有当前用户能访问,否则会报错拒绝使用。操作如下:
    1. 右键PEM文件,选择「属性」→「安全」选项卡。
    2. 点击「高级」,然后点击「禁用继承」,选择「从此对象中删除所有继承的权限」。
    3. 点击「添加」→「选择主体」,输入你的Windows用户名,点击「检查名称」确认无误后点「确定」。
    4. 在权限列表里勾选「完全控制」(至少要勾选「读取」权限),然后依次点击「应用」→「确定」保存设置。

方法二:用PowerShell自动生成(高效快捷)

如果经常需要创建密钥对,用PowerShell命令可以一步到位,省去手动复制粘贴的麻烦:

  1. 执行创建密钥对的命令,同时直接提取PEM内容并写入文件:
# 替换为你想要的密钥对名称和保存路径
$keyName = "MyKeyPair"
$savePath = "C:\Users\YourUsername\Desktop\$keyName.pem"

# 创建密钥对并将PEM内容写入本地文件
$keyMaterial = aws ec2 create-key-pair --key-name $keyName --query "KeyMaterial" --output text
$keyMaterial | Out-File -FilePath $savePath -Encoding utf8
  1. 接着用PowerShell自动设置文件权限(和手动步骤效果完全一致):
$acl = Get-Acl $savePath
# 禁用继承的权限规则
$acl.SetAccessRuleProtection($true, $false)
# 获取当前登录的Windows用户
$currentUser = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name
# 添加当前用户的读取权限
$accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule(
    $currentUser,
    "Read",
    "None",
    "None",
    "Allow"
)
$acl.SetAccessRule($accessRule)
# 应用权限设置到文件
Set-Acl $savePath $acl

补充说明

AWS CLI默认不会自动生成本地PEM文件,因为它本质只是返回EC2 API的响应内容。通过--query "KeyMaterial" --output text参数,可以直接获取纯文本格式的PEM内容,省去了手动处理JSON转义字符的麻烦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:08:30