如何在我的所有 AWS 區域使用單一 SSH 金鑰對?

1 分的閱讀內容
0

我想使用相同的 SSH 金鑰對來存取我在所有 AWS 區域中的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。我該怎麼做?

簡短說明

若要在所有 AWS 區域使用單一 SSH 金鑰對,請先從 SSH 私有金鑰產生 SSH 公有金鑰。然後,將金鑰匯入到每個 AWS 區域。

**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請確保您使用的是最新的 AWS CLI 版本

解決方法

如果您還沒有,請建立 SSH 金鑰對

Linux

1.    從 SSH 私有金鑰 (.pem) 檔案產生 SSH 公有金鑰 (.pub) 檔案:

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

**注意:**請使用您私有 .pem 檔案的名稱取代 MyKeyPair.pem。請確保您使用的是 bash Shell,並且使用具有有效存取權限的使用者身分設定 AWS CLI。

2.    執行下列命令以設定 AWS_REGIONS

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

**注意:**如果您使用的是 ZSH Shell,請啟用字詞分割,以便 for loop 命令會正確重複每個區域名稱。請使用下列命令來啟用字詞分割:

$ 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。

選擇載入以載入您的私有金鑰檔案。

選擇儲存公有金鑰

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}

**注意:**請使用您的公有 SSH 檔案名稱取代 MyKeyPair.pub


相關資訊

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

AWS 服務端點

Import-EC2KeyPair Cmdlet

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