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

1 分的閱讀內容
0

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

解決方法

**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本

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

若要使用 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. 若要設定區域,請執行 describe-regions 命令:

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

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

    $ setopt shwordsplit
  3. 若要將公開 SSH 金鑰對匯入區域,請執行 import-key-pair 命令:

    $ 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 金鑰對匯入區域:

    $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 服務端點

Import-EC2KeyPair Cmdlet

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