如何为我的所有 AWS 区域使用同一个 SSH 密钥对?

1 分钟阅读
0

我想使用相同的 SSH 密钥对访问我在所有 AWS 区域中的 Amazon Elastic Compute Cloud (Amazon EC2) 实例。该怎么做?

简短描述

要为所有 AWS 区域使用同一个 SSH 密钥对,请首先通过 SSH 私钥生成一个 SSH 公钥。然后,将密钥导入到每个 AWS 区域中。

**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时遇到错误,请确保您使用的是最新版的 AWS CLI

解决方法

如果您还没有,则创建 SSH 密钥对

Linux

1.    通过 SSH 私钥 (.pem) 文件生成 SSH 公钥 (.pub) 文件:

$ ssh-keygen -y -f MyKeyPair.pem > $HOME/.ssh/id_rsa_MyKeyPair.pub

**注意:**请将 MyKeyPair.pem 替换为您的私有 .pem 文件的名称。确保您使用的是 bash shell,并且您使用具有有效访问权限的用户配置了 AWS CLI。

2.    运行以下命令以设置 AWS_REGIONS

$ AWS_REGIONS="$(aws ec2 describe-regions --query 'Regions[].RegionName' --output text)"

**注意:**如果您使用的是 ZSH shell,请启用单词拆分,以便 for 循环命令能够正确迭代每个区域名称。使用以下命令启用单词拆分:

$ setopt shwordsplit

3.    运行以下命令来将 SSH 公钥导入区域:

$ for each_region in ${AWS_REGIONS} ; do aws ec2 import-key-pair --key-name MyKeyPair --public-key-material fileb://$HOME/.ssh/id_rsa_MyKeyPair.pub --region $each_region ; done

Windows

1.    通过 SSH 私钥 (.pem) 文件生成 SSH 公钥 (.pub) 文件:

打开 PuTTYgen。

选择 Load(加载)以加载您的私钥文件。

选择 Save public key(保存公钥)。

2.    通过运行以下命令,将 SSH 公钥导入所需的 AWS 区域:

$PubFile = Get-Content .\MyKeyPair.pub -raw
$Key = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($PubFile))
foreach ($Region in (Get-AWSRegion).Region) {Import-EC2KeyPair -KeyName MyKeyPair -PublicKeyMaterial $Key -Region $Region}

**注意:**请将 MyKeyPair.pub 替换为您的公共 SSH 文件名。


相关信息

AWS CLI 命令参考 – import-key-pair

AWS 服务终端节点

Import-EC2KeyPair Cmdlet

相关视频

AWS 官方
AWS 官方已更新 3 年前