

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# `AWSSupport-TroubleshootSSH`
<a name="automation-awssupport-troubleshootssh"></a>

 **Description** 

`AWSSupport-TroubleshootSSH` Runbook 安裝適用於 Linux 的 Amazon EC2Rescue 工具，然後使用 EC2Rescue 工具來檢查或嘗試修正常見問題，以防止透過 SSH 遠端連線至 Linux 機器。或者，如果使用者明確允許離線修復，則可藉由停用和啟動執行個體以離線套用變更。根據預設，執行手冊會以唯讀模式運作。

[執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootSSH)

如需有關使用 `AWSSupport-TroubleshootSSH` Runbook 的資訊，請參閱 AWS Premium Support 中的此[`AWSSupport-TroubleshootSSH`故障診斷主題](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-ssh-errors-automation-workflow/)。

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux

**參數**
+ 動作

  類型：字串

  有效值：CheckAll \$1 FixAll

  預設：CheckAll

  描述：(必要) 指定是否檢查問題而不修正，或是檢查並自動修正任何發現的問題。
+ AllowOffline

  類型：字串

  有效值：true \$1 false

  預設：false

  描述：(選用) Fix only - 若您想在線上疑難排解失敗或所提供的執行個體非受管執行個體時允許離線 SSH 修復，請將其設定為 true。備註：對於離線修復，SSM 自動化會停止執行個體，並在嘗試任何操作前建立 AMI。
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ InstanceId

  類型：字串

  描述：(必要) Linux 之 EC2 執行個體的 ID。
+ S3BucketName

  類型：字串

  描述：(選用) 僅限離線 - 您想要上傳疑難排解日誌之帳戶中的 S3 儲存貯體名稱。請確認儲存貯體政策不會授予不必要的讀取/寫入許可給不需要存取所收集日誌的單位。
+ SubnetId

  類型：字串

  預設：SelectedInstanceSubnet

  描述：(選用) 僅限離線 - 用於執行離線疑難排解的 EC2Rescue 執行個體之子網路 ID。如果未指定子網路 ID， AWS Systems Manager Automation 將建立新的 VPC。
**重要**  
子網路必須與 InstanceId 位於相同的可用區域，且必須允許存取 SSM 端點。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。

建議接收命令的 EC2 執行個體具備連接 **AmazonSSMManagedInstanceCore** Amazon 受管政策的 IAM 角色。對於線上修復，使用者必須至少有 **ssm：DescribeInstanceInformation**、**ssm：StartAutomationExecution** 和 **ssm：SendCommand**，才能執行自動化並將命令傳送至執行個體，加上 **ssm：GetAutomationExecution**，才能讀取自動化輸出。對於離線修補，使用者必須至少有 **ssm：DescribeInstanceInformation**、**ssm：StartAutomationExecution**、**ec2：DescribeInstances** 加上 **ssm：GetAutomationExecution**，才能讀取自動化輸出。 `AWSSupport-TroubleshootSSH` 呼叫 `AWSSupport-ExecuteEC2Rescue` 以執行離線修補 - 請檢閱 的許可`AWSSupport-ExecuteEC2Rescue`，以確保您可以成功執行自動化。

 **文件步驟** 

1. `aws:assertAwsResourceProperty` - 檢查執行個體是否為受管執行個體 

   1. (線上修復) 如果執行個體是受管執行個體，則：

      1. `aws:configurePackage` - 透過 安裝適用於 Linux 的 EC2Rescue`AWS-ConfigureAWSPackage`。

      1. `aws:runCommand` - 執行 bash 指令碼以執行適用於 Linux 的 EC2Rescue。

   1. (離線修復) 如果執行個體不是受管執行個體，則：

      1. `aws:assertAwsResourceProperty` - 宣告 **AllowOffline = true**

      1. `aws:assertAwsResourceProperty` - 宣告**動作 = FixAll**

      1. `aws:assertAwsResourceProperty` - 宣告 SubnetId 的值

      1. （使用提供的執行個體子網路） 如果 SubnetId 是 SelectedInstanceSubnet，`aws:executeAutomation`我們會`AWSSupport-ExecuteEC2Rescue`使用提供的執行個體子網路執行 。

      1. （使用提供的自訂子網路） 如果 SubnetId 不是 SelectedInstanceSubnet，則使用 `AWSSupport-ExecuteEC2Rescue` `aws:executeAutomation`搭配提供的 SubnetId 值執行。

 **輸出** 

troubleshootSSH.Output

troubleshootSSHOffline.Output

troubleshootSSHOfflineWithSubnetId.Output