Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
如果我在首次啟動後就遺失了 SSH 金鑰對,該如何連接至 Amazon EC2 執行個體?
我想連接至我的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體,但遺失了 SSH 金鑰對。
解決方法
重要:
方法 1、2 和 3 需要停止和啟動執行個體。請注意下列事項:
- 如果您的執行個體是執行個體儲存體備份,或具有包含資料的執行個體儲存體磁碟區,則當您停止執行個體時,資料會遺失。如需詳細資訊,請參閱確定您的執行個體的根裝置類型。請確保備份您要保留在執行個體儲存體磁碟區上的任何資料。
- 停止並重新啟動執行個體會變更執行個體的公有 IP 地址。將外部流量路由至執行個體時,最佳實務是使用 Elastic IP 地址而非公有 IP 地址。
方法 1: 輸入使用者資料
1. 建立新的金鑰對。
2. 如果您在 Amazon EC2 主控台中建立私有金鑰,請擷取金鑰對的公有金鑰。
3. 開啟 Amazon EC2 主控台。
4. 停止執行個體。
5. 選擇動作、執行個體設定、編輯使用者資料。
6. 將下列指令碼複製到編輯使用者資料對話方塊中:
Content-Type: multipart/mixed; boundary="//" MIME-Version: 1.0 --// Content-Type: text/cloud-config; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="cloud-config.txt" #cloud-config cloud_final_modules: - [users-groups, once] users: - name: username ssh-authorized-keys: - PublicKeypair
將 username 取代為您的使用者名稱,例如 ec2-user。您可以輸入預設使用者名稱,或輸入自訂使用者名稱 (如果先前已為執行個體設定)。如需預設使用者名稱的清單,請參閱取得執行個體的相關資訊。
將 PublicKeypair 取代為在步驟 2 中擷取的公有金鑰。請確保輸入整個公有金鑰,以 ssh-rsa 開頭。
7. 選擇儲存。
8. 啟動您的執行個體。
9. 在 cloud-init 階段完成之後,確認已取代公有金鑰。
重要:由於指令碼包含金鑰對,因此請從使用者資料欄位中移除指令碼。
10. 停止執行個體。
11. 選擇動作、執行個體設定、編輯使用者資料。
12. 刪除編輯使用者資料對話方塊中的所有文字,然後選擇儲存。
13. 啟動您的執行個體。
方法 2: 使用 AWS Systems Manager
如果您的執行個體是 AWS Systems Manager 中的受管執行個體,請使用 AWSSupport-ResetAccess document 來復原遺失的金鑰對。AWSSupportResetAccess 使用 EC2 Rescue for Linux 工具,在指定的 EC2 執行個體上自動產生並新增 SSH (公有/私有) 金鑰對。
執行個體的新 SSH 私有金鑰會加密並儲存在 Parameter Store (AWS Systems Manager 的一項功能) 中。參數名稱是 /ec2rl/openssh/instance_id/key。
使用下列命令從 Parameter Store 中擷取私有 SSH 金鑰:
$ aws ssm get-parameters --names "/ec2rl/openssh/instance_id/key" --with-decryption --output json --query "Parameters[0].Value" | sed 's:\\n:\n:g; s:^"::; s:"$::' > key-pair-name
**注意:**請確保將 instance_id 取代為您的執行個體 ID,並將 key-pair-name 取代為您的密鑰對名稱。
然後,以此參數的值作為內容建立新的 .pem 檔案,並使用它重新連接無法連線的執行個體。使用下列命令將私有金鑰轉換為 .pem 檔案:
$ ssh-keygen -f key-pair-name -e -m pem > key-pair-name.pem
**注意:**請確保將 key-pair-name 取代為您的金鑰對名稱。
自動化工作流程會建立備份、啟用密碼的 Amazon Machine Image (AMI)。新的 AMI 不會自動刪除,並會保留在您的帳戶中。
若要尋找這些 AMI,請執行以下操作:
1. 開啟 Amazon EC2 主控台,然後選擇 AMI。
2. 在搜尋欄位中輸入自動化執行 ID。
方法 3: 使用 Amazon EC2 Instance Connect
如果您的執行個體是 Amazon Linux 2 2.0.20190618 或更新版本,包括 Amazon Linux 2023,則可以使用 EC2 Instance Connect 連接至執行個體。
方法 4: 使用 EC2 序列主控台
如果已開啟適用於 Linux 的 EC2 序列主控台,您可以用來對支援的 Nitro 型執行個體類型進行疑難排解。序列主控台可協助您對開機問題、網路組態和 SSH 組態問題進行疑難排解。序列主控台可連線至執行個體,無需可運作的網路連線。您可以使用 Amazon EC2 主控台或 AWS Command Line Interface (AWS CLI),存取序列主控台。
使用序列主控台之前,先在帳戶層級授予主控台存取權。建立 AWS Identity and Access Management (IAM) 政策,將存取權授予 IAM 使用者。此外,每個使用序列主控台的執行個體都必須至少包含一個密碼型使用者。如果您的執行個體無法連線,而且您並未設定序列主控台的存取權,請遵循方法 1、方法 2 或方法 3 中的指示進行操作。如需有關設定適用於 Linux 的 EC2 序列主控台的資訊,請參閱設定 EC2 序列主控台的存取權。
**注意:**如果您在執行 AWS CLI 命令時收到錯誤,請確保您使用的是最新版本的 AWS CLI。
相關資訊
相關內容
- 已提問 2 年前lg...
- 已提問 20 天前lg...
- 已提問 1 年前lg...
- 已提問 1 年前lg...
- 已提問 1 年前lg...
- AWS 官方已更新 3 年前
- AWS 官方已更新 9 個月前
- AWS 官方已更新 3 年前