嘗試使用 SSH 連線至 EC2 執行個體時收到錯誤訊息。如何使用 AWSSupport-TroubleshootSSH 自動化工作流程,來對 SSH 連線問題進行疑難排解?

2 分的閱讀內容
0

我透過 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+

軟體需求

  • Python 2.7.9+ 或 3.2+

**注意:**要進一步了解詳細訊息或對其他錯誤訊息類型進行疑難排解,請參閱為什麼我無法使用 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 自動化

  1. 開啟 AWS Systems Manager 主控台
  2. 在導覽窗格中,選擇自動化
    注意:如果 AWS Systems Manager 首頁先開啟,選擇功能表圖示以開啟導覽窗格,然後選擇自動化
  3. 選擇執行自動化
  4. 在搜尋欄位中,輸入 AWSSupport-TroubleshootSSH,然後按下 Enter
  5. 在搜尋結果中,選取 AWSSupport-TroubleshootSSH
  6. 在文件清單中,選擇 AWSSupport-TroubleshootSSH。文件擁有者是 Amazon。
  7. 描述區段中,確認文件版本設定為執行期的預設版本
  8. 選擇下一步
  9. 執行自動化文件區段中,選擇簡單執行
  10. 輸入參數區段中,指定下列參數:
    針對 InstanceID,指定無法連線之執行個體的 ID。針對動作,選取 FixAll
    針對 AllowOffline,選取 True
    **注意:如果此參數設定為 False,且執行個體並非由系統管理員管理,則自動化會失敗。
    (選用) 針對 SubnetId,在與您指定的 Amazon EC2 執行個體相同的可用區域內的現有 VPC 中,指定子網路。預設情況下,系統管理員會建立新的 VPC,但您可以在現有 VPC 中指定子網路。
    (選用) 針對 ** S3BucketName
    ,輸入您有寫入權限的儲存貯體的名稱。疑難排解日誌會上傳至此儲存貯體 (若提供)。
    (選用) 針對 AutomationAssumeRole,指定此執行的 IAM 角色。如果未指定角色,則 AWS Systems Manager Automation 會使用執行此文件的使用者的權限。
  11. 選擇執行
  12. 若要監控執行進度,請選擇正在執行的自動化,然後選擇步驟標籤。執行完成後,選擇描述標籤,然後選擇檢視輸出以檢視結果。若要檢視單個步驟的輸出,請選擇步驟標籤,然後選擇步驟旁邊的檢視輸出

從 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 修復