我透過 SSH 登入 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體,並使用詳細訊息傳送時,收到錯誤訊息,例如「權限遭拒」或「連線遭拒」。 如何使用 AWSSupport-TroubleshootSSH 自動化文件,來對 SSH 連線問題進行疑難排解?
簡短描述
AWSSupport-TroubleshootSSH 安裝 Amazon EC2Rescue 工具。然後,該工具會檢查並更正透過 SSH 連線至 Linux 機器時導致遠端連線錯誤的一些問題。執行 AWSSupport-TroubleshootSSH 自動化,依據子網路、S3 儲存貯體或 IAM 角色,自動修復問題。
使用適用於 Linux 的 EC2Rescue 的系統需求
適用於 Linux 的 EC2Rescue 需要符合下列先決條件的 Amazon EC2 Linux 執行個體:
支援的作業系統
- Amazon Linux 2
- Amazon Linux 2016.09+
- SLES 12+
- RHEL 7+
- Ubuntu 16.04+
軟體需求
**注意:**要進一步了解詳細訊息或對其他錯誤訊息類型進行疑難排解,請參閱為什麼我無法使用 SSH 連線至 Amazon EC2 Linux 執行個體?
解決方法
開始之前:
- 複製要進行疑難排解的 Amazon EC2 執行個體的執行個體 ID。您需要該執行個體 ID 來執行自動化文件。
- (選用) 將子網路的 ID 複製到無法連接的 Amazon EC2 執行個體的相同可用區域。EC2Rescue 執行個體會安裝在此子網路中。如果您未指定子網路,則自動化文件會在您的 AWS 帳戶中建立新的臨時 VPC。確認您的 AWS 帳戶有至少一個可用的 VPC。預設情況下,您可以在一個區域建立五個 VPC。如果您已在該區域建立五個 VPC,則自動化會失敗,且不會變更您的 Amazon EC2 執行個體。如需詳細資訊,請參閱 VPC 和子網路。
- (選用) 為自動化建立並指定 AWS Identity and Access Management (IAM) 角色。如果您未指定角色,則 AWS Systems Manager Automation 會使用執行此文件的使用者的許可。如需有關建立自動化角色的詳細資訊,請參閱使用 IAM 設定自動化角色。
從 AWS Systems Manager 主控台執行 AWSSupport-TroubleshootSSH 自動化
- 開啟 AWS Systems Manager 主控台。
- 在導覽窗格中,選擇自動化。
注意:如果 AWS Systems Manager 首頁先開啟,選擇功能表圖示以開啟導覽窗格,然後選擇自動化。
- 選擇執行自動化。
- 在搜尋欄位中,輸入 AWSSupport-TroubleshootSSH,然後按下 Enter。
- 在搜尋結果中,選取 AWSSupport-TroubleshootSSH。
- 在文件清單中,選擇 AWSSupport-TroubleshootSSH。文件擁有者是 Amazon。
- 在描述區段中,確認文件版本設定為執行期的預設版本。
- 選擇下一步。
- 在執行自動化文件區段中,選擇簡單執行。
- 在輸入參數區段中,指定下列參數:
針對 InstanceID,指定無法連線之執行個體的 ID。針對動作,選取 FixAll。
針對 AllowOffline,選取 True。
**注意:如果此參數設定為 False,且執行個體並非由系統管理員管理,則自動化會失敗。
(選用) 針對 SubnetId,在與您指定的 Amazon EC2 執行個體相同的可用區域內的現有 VPC 中,指定子網路。預設情況下,系統管理員會建立新的 VPC,但您可以在現有 VPC 中指定子網路。
(選用) 針對 ** S3BucketName,輸入您有寫入權限的儲存貯體的名稱。疑難排解日誌會上傳至此儲存貯體 (若提供)。
(選用) 針對 AutomationAssumeRole,指定此執行的 IAM 角色。如果未指定角色,則 AWS Systems Manager Automation 會使用執行此文件的使用者的權限。
- 選擇執行。
- 若要監控執行進度,請選擇正在執行的自動化,然後選擇步驟標籤。執行完成後,選擇描述標籤,然後選擇檢視輸出以檢視結果。若要檢視單個步驟的輸出,請選擇步驟標籤,然後選擇步驟旁邊的檢視輸出。
從 AWS Command Line Interface (AWS CLI) 執行 AWSSupport-TroubleshootSSH 自動化
aws ssm start-automation-execution --document-name "AWSSupport-TroubleshootSSH" --document-version "\$DEFAULT" --parameters '{"InstanceId":["i-0a241ed9caf16f01e"],"Action":["FixAll"],"AllowOffline":["True"],"SubnetId":["SelectedInstanceSubnet"]}' --region us-east-1
如需有關 AWSSupport-TroubleshootSSH 自動化的詳細資訊,請參閱運用 AWS Systems Manager Automation API 動作進行智慧型 RDP 和 SSH 修復。