SSH を使用して EC2 インスタンスに接続しようとすると、エラーが発生します。AWSSupport-TroubleshootSSH Automation ワークフローを使用して、SSH 接続の問題をトラブルシューティングする方法を教えてください。

最終更新日: 2020 年 3 月 19 日

詳細なメッセージのある SSH を介して Amazon Elastic Compute Cloud (Amazon EC2) インスタンスにログインすると、「Permission denied」または「Connection refused」などのエラーが表示されます。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 をコピーします。Automation ドキュメントを実行するには、インスタンス ID が必要です。
  • (オプション) 到達不可能な Amazon EC2 インスタンスと同じアベイラビリティーゾーンのサブネットの ID をコピーします。EC2Rescue インスタンスはこのサブネットにインストールされます。サブネットを指定しない場合、Automation ドキュメントが AWS アカウントに新しい一時的な VPC を作成します。AWS アカウントに少なくとも 1 つの利用可能な VPC があることを確認します。デフォルトでは、1 つのリージョンに 5 つの VPC を作成できます。リージョンで既に 5 つの VPC を作成している場合、Amazon EC2 インスタンスを変更しないと Automation が失敗します。詳細については、「VPC とサブネット」をご参照ください。
  • (オプション) オートメーション用の AWS Identity and Access Management (IAM) ロールを作成し指定します。このロールを指定しない場合、AWS Systems Manager Automation はこのドキュメントを実行するユーザーのアクセス許可を使用します。オートメーション用のロール作成の詳細については、「IAM サービスロールを使用して、Automation ワークフローを実行する」をご参照ください。

AWS Systems Manager コンソールから AWSSupport-TroubleshootSSH オートメーションを実行する

  1. AWS Systems Manager コンソールを開きます。
  2. ナビゲーションペインで [Automation] を選択します。
    注: AWS Systems Manager ホームページが最初に開く場合は、メニューアイコンを選択してナビゲーションペインを開き、[Automation] をクリックします。
  3. [Execute automation] をクリックします。
  4. 検索フィールドに AWSSupport-TroubleshootSSH と入力し、 [Enter] キーを押します。
  5. 検索結果で [AWSSupport-TroubleshootSSH] を選択します。
  6. ドキュメントリストで、[AWSSupport-TroubleshootSSH] を選択します。ドキュメントの所有者は Amazon です。
  7. Description セクションで、[Document version] が [Default version at runtime] に設定されていることを確認します。
  8. [Next] をクリックします。
  9. Execute automation document セクションで [Simple execution] をクリックします。
  10. Input パラメータセクションで、以下のパラメータを指定します。
    [InstanceID] で 到達不可能なインスタンスの ID を指定します。[Action] で [FixAll] を選択します。
    [AllowOffline] で [True] をクリックします。
    (オプション) [SubnetId] で、指定した Amazon EC2 インスタンスと同じアベイラビリティーゾーンの既存の VPC のサブネットを指定します。デフォルトでは、Systems Manager は新しい VPC を作成しますが、既存の VPC でサブネットを指定できます。
    (オプション) [S3BucketName] に書き込みアクセス許可があるバケットの名前を入力します。トラブルシューティングログがある場合には、このバケットにアップロードされます。
    (オプション) [AutomationAssumeRole] で、この実行の IAM ロールを指定します。ロールが指定されていない場合、AWS Systems Manager Automation はこのドキュメントを実行するユーザーのアクセス許可を使用します。
  11. [Execute] をクリックします。
  12. 実行の進行状況をモニタリングするには、実行中の Automation を選択し、[Steps] タブをクリックします。実行が完了したら、[Descriptions] タブを選択し、[View output] をクリックして結果を表示します。個々のステップの出力を表示するには、[Steps] タブを選択し、ステップの横にある [View Outputs] をクリックします。

AWS Command Line Interface (AWS CLI) から AWSSupport-TroubleshootSSH の Automation を実行する

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 Automation の詳細については、「Smart RDP and SSH remediation with AWS Systems Manager Automation API actions」をご参照ください。


この記事は役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?