このトピックでは、Linux Elastic Compute Service (ECS) インスタンスに接続できない問題のトラブルシューティング方法について説明します。
原因
SSH接続の失敗は、Pluggable Authentication Module (PAM) フレームワーク、セキュリティグループ設定、SSH設定など、さまざまな要因によって発生する可能性があります。 Linuxインスタンスに接続できない場合、次のシナリオが発生する可能性があります。 問題をトラブルシューティングするには、シナリオに基づいて操作を実行します。
Linuxインスタンスにログインする
接続できないLinuxインスタンスにログインする場合は、次の手順を実行してインスタンスのステータスを確認し、Cloud Assistantを使用してLinuxインスタンスにコマンドを送信するか、Virtual Network Computing (VNC) を使用してインスタンスにログインします。
ステップ1: インスタンスのステータスを確認する
接続失敗の原因に関係なく、インスタンスのステータスを確認します。 インスタンスが [実行中] 状態の場合にのみ、外部サービスを提供できます。 以下の手順を実行します。
左側のナビゲーションウィンドウで、 .
上部のナビゲーションバーで、リソースが属するリージョンとリソースグループを選択します。
ステップ2: VNCを使用してインスタンスにログインする
Cloud Assistantが利用できない場合、またはビジネス要件を満たしていない場合は、VNCを使用してインスタンスにログインできます。
左側のナビゲーションウィンドウで、 .
上部のナビゲーションバーで、リソースが属するリージョンとリソースグループを選択します。
[インスタンス] ページで、接続するインスタンスを見つけ、アクション 列の [接続] をクリックします。
リモート接続 ダイアログボックスで、他のログイン方法を表示 をクリックします。 次に、VNCセクションで 今すぐサインイン をクリックします。
インスタンスのオペレーティングシステムにログインします。
rootやecs-userなどのユーザー名を入力し、
Enter
キーを押します。ユーザー名に対応するパスワードを入力し、
Enter
キーを押します。説明Linuxインスタンスのパスワードを入力すると、パスワードの文字は非表示になります。 正しいパスワードを入力してください。
手順3: Cloud Assistantを使用してLinuxインスタンスにコマンドを送信する
Alibaba Cloudが提供するCloud Assistantを使用して、Linuxインスタンスにコマンドを送信します。 以下の手順を実行します。
エラーメッセージは返されません
[実行中] 状態のLinuxインスタンスに接続できないときにエラーメッセージが返されない場合は、次の手順を実行して問題をトラブルシューティングします。
手順1: Alibaba Cloud Workbenchを使用してインスタンスに接続する
Workbenchを使用してインスタンスに接続します。 Workbenchを使用してインスタンスに接続できない場合、Workbenchはエラーメッセージと対応するソリューションを返します。 以下の手順を実行します。
左側のナビゲーションウィンドウで、 .
上部のナビゲーションバーで、リソースが属するリージョンとリソースグループを選択します。
[インスタンス] ページで、接続するLinuxインスタンスを見つけます。 アクション 列で、リモート接続 をクリックします。
リモート接続 ダイアログボックスで、ワークベンチ セクションの 今すぐサインイン をクリックします。
インスタンスに接続できるかどうかを確認します。
[インスタンスログイン] ダイアログボックスで、インスタンスに関する基本情報がWorkbenchによって自動的に入力されます。 基本情報が正しいことを確認してください。 次に、インスタンスのユーザー名と認証情報を入力します。 Workbenchを使用してインスタンスに接続できるかどうかに基づいてアクションを実行します。 Workbenchを使用してLinuxインスタンスに接続する方法については、「パスワードまたはキーを使用してLinuxインスタンスに接続する」をご参照ください。
Workbenchを使用してインスタンスに接続できない場合、Workbenchはエラーメッセージと対応するソリューションを返します。 エラーメッセージと解決策に基づいて問題を解決します。 問題のトラブルシューティング後、Workbenchを使用してインスタンスに接続します。 Workbenchを使用してインスタンスに接続するときに発生する可能性のある問題の原因と解決策については、「VNCまたはWorkbenchを使用してインスタンスに接続するときに発生する問題」トピックの「Workbenchを使用してLinuxインスタンスに接続する」セクションを参照してください。
Workbenchを使用してインスタンスに接続できる場合、SSHはインスタンスで期待どおりに機能します。 この場合、ステップ2: ネットワーク接続の確認に進みます。
ステップ2: ネットワーク接続を確認する
Linuxインスタンスに接続できない場合は、インスタンスのネットワーク接続を確認してください。
異なるCIDRブロックまたは異なるオペレーターのコンピューターを使用して、他のネットワーク経由でインスタンスに接続し、問題がオンプレミスネットワークまたはサーバー側に関連しているかどうかを確認します。
問題がオンプレミスのネットワークまたは通信事業者に関連している場合は、オンプレミスのIT担当者またはオペレーターに連絡してください。
ネットワークインターフェイス (NIC) ドライバで例外が発生した場合は、ドライバを再インストールしてください。
オンプレミスクライアントでpingコマンドを実行して、インスタンスのネットワーク接続をテストします。
ネットワーク例外が発生した場合は、パケットをキャプチャして例外の原因を分析します。 詳細については、「ネットワーク例外発生時のパケットのキャプチャ」をご参照ください。
pingパケットがドロップされた場合、またはインスタンスをpingできない場合は、
tracert
またはMTR
ツールを使用してネットワークパスをテストし、問題の原因を特定します。 詳細については、「pingコマンドの実行後にパケット損失または接続障害が発生したときのネットワークパスのテスト」をご参照ください。断続的なパケット損失が発生すると、インスタンスのネットワーク接続が不安定になり、インスタンスがウイルスに感染する可能性があります。 問題のトラブルシューティング方法については、「pingコマンドを使用してECSインスタンスのIPアドレスの断続的なパケット損失をテストする」をご参照ください。
インスタンスのカーネルでpingが有効になっているが、オンプレミスクライアントからインスタンスにpingを実行できない場合、インスタンスのファイアウォールがクライアントからのトラフィックを拒否するように構成されている可能性があります。
問題のトラブルシューティング方法については、「pingを許可しないがpingできないLinux ECSインスタンスへのソリューション」をご参照ください。
ステップ3: インスタンスのポートとセキュリティグループを確認する
インスタンスのセキュリティグループで必要な接続ポートが開いているかどうかを確認します。
左側のナビゲーションウィンドウで、 .
上部のナビゲーションバーで、リソースが属するリージョンとリソースグループを選択します。
[インスタンス] ページで、インスタンスのIDをクリックします。
[セキュリティグループ] タブをクリックしてセキュリティグループを見つけ、[操作] 列の [ルールの管理] をクリックします。
[セキュリティグループの詳細] タブで、次のいずれかの方法でセキュリティグループルールを追加します。 詳細については、「セキュリティグループルールの追加」をご参照ください。
方法1: クイック追加機能を使用してセキュリティグループルールを追加する
アクション: 許可します。
ポート範囲: SSH (22) 。
権限付与オブジェクト: 0.0.0.0/0。すべてのIPアドレスを指定します。
方法2: セキュリティグループルールを手動で追加する
アクション: 許可します。
Priority: 1。最高の優先度を指定します。 より小さい数は、より高い優先度を指定する。
プロトコルタイプ: カスタムTCP。
ポート範囲: SSH (22) 。
権限付与オブジェクト: 0.0.0.0/0。すべてのIPアドレスを指定します。 ビジネス要件に基づいて権限付与オブジェクトを指定することもできます。
次のコマンドを実行して、インスタンスでSSHポートが開いているかどうかを確認します。
telnet [$IP] [$Port]
説明[$IP] は、インスタンスのIPアドレスを指定します。
[$Port] は、インスタンスのSSHポート番号を指定します。
サンプルコマンド:
telnet 192.168.0.1 22
次のコマンド出力は、SSHポートがインスタンスで開いていることを示します。Trying 192.168.0.1 ... Connected to 192.168.0.1. Escape character is '^]'
インスタンスでSSHポートが閉じている場合は、ECSインスタンスのパブリックIPアドレスをpingできない場合はどうすればよいですか。 この問題のトラブルシューティングをご参照ください。
ステップ4: インスタンスのCPU負荷、帯域幅使用量、およびメモリ使用量を確認する
Linuxインスタンスに接続できない場合、インスタンスのCPU負荷が高く、パブリック帯域幅が不足している、またはメモリが不足している可能性があります。
インスタンスのCPU負荷を確認し、確認結果に基づいて操作を実行します。
CPU負荷が高い場合は、インスタンスタイプをアップグレードします。
インスタンスでホストされているアプリケーションが、ディスクに対して多数の読み取り /書き込み操作を実行したり、多数のネットワークリクエストを開始したり、計算負荷の高いワークロードを生成したりすると、インスタンスのCPU負荷が高くなります。 この場合、リソースのボトルネックの問題を解決するためにインスタンスタイプをアップグレードすることを推奨します。 詳細については、「インスタンス設定の変更の概要」をご参照ください。
説明高CPU負荷の問題を解決する方法については、「Linux CPU負荷のクエリとケース分析」をご参照ください。
CPU負荷が高くない場合は、次のステップに進みます。
不十分なパブリック帯域幅の問題をトラブルシューティングします。
Linuxインスタンスに接続できない場合、インスタンスのパブリック帯域幅が不足している可能性があります。 問題をトラブルシューティングするには、次の手順を実行します。
左側のナビゲーションウィンドウで、 .
上部のナビゲーションバーで、リソースが属するリージョンとリソースグループを選択します。
[インスタンス] ページで、インスタンスのIDをクリックします。 [設定情報] セクションで、[インターネット帯域幅] の値を表示します。
値が0 Mbpsの場合、インスタンスにはパブリック帯域幅がありません。 パブリック帯域幅をインスタンスに割り当てるには、パブリック帯域幅設定をアップグレードします。 詳細については、「インスタンス設定の変更の概要」トピックの「最大パブリック帯域幅の変更」セクションをご参照ください。
メモリ不足の問題をトラブルシューティングします。
Linuxインスタンスのデスクトップが期待どおりに表示されず、インスタンスに接続した後にエラーメッセージが表示されない場合、インスタンスのメモリが不足している可能性があります。 この場合、インスタンスのメモリ使用量を確認してください。 以下の手順を実行します。
VNCを使用してインスタンスにログインします。
詳細については、「VNCを使用したインスタンスへの接続」をご参照ください。
メモリ使用量を確認します。 インスタンスのメモリが不足している場合は、メモリサイズの大きいインスタンスタイプにアップグレードすることを推奨します。 詳細については、「インスタンス設定の変更の概要」をご参照ください。
エラーメッセージが返されます。
ほとんどの場合、インスタンスに接続できない場合にエラーメッセージが返されます。 エラーメッセージに基づいて、問題を特定して解決できます。
PAMフレームワーク
LinuxのPAMフレームワークは、必要なセキュリティモジュールをロードし、アカウントポリシーやログオンポリシーなどのアクセス制御ポリシーを実装できます。 設定が無効な場合、または関連するポリシーがトリガーされると、SSHログインが失敗する可能性があります。 SSHログインが失敗した場合は、返されたエラーメッセージに基づいて問題をトラブルシューティングします。 詳細については、以下のトピックをご参照ください。
Linuxインスタンスのシステム環境
Linuxインスタンスのシステム環境でのウイルス感染、無効なアカウント設定、無効な環境設定などの例外も、SSHログインに失敗する可能性があります。 SSHログインが失敗した場合は、返されたエラーメッセージに基づいて問題をトラブルシューティングします。 詳細については、以下のトピックをご参照ください。
SSHサービスとパラメータの設定
SSHサービスのデフォルト設定ファイルは /etc/ssh/sshd_config
です。設定ファイルのパラメーター設定が無効な場合、または設定ファイルで関連する機能またはポリシーが有効になっている場合、SSHログインが失敗する可能性があります。 SSHログインが失敗した場合は、返されたエラーメッセージに基づいて問題をトラブルシューティングします。 詳細については、以下のトピックをご参照ください。
サードパーティのSSHクライアントを使用してLinuxインスタンスに接続するときに「アクセス拒否」エラーが報告された場合はどうすればよいですか?
SSHを使用してルートユーザーとしてLinuxインスタンスに接続したときに「許可が拒否されました。もう一度お試しください」というエラーメッセージが表示された場合はどうすればよいですか?
サードパーティのSSHクライアントを使用してインスタンスに接続するときに「認証に失敗が多すぎます」というエラーメッセージが表示された場合はどうすればよいですか?
LinuxインスタンスでSSHサービスを起動したときに「共有ライブラリの読み込み中にエラー」というエラーメッセージが表示された場合はどうすればよいですか?
LinuxインスタンスでSSHサービスを起動したときに「致命的: アドレスをバインドできません」というエラーメッセージが表示された場合はどうすればよいですか?
SSHサービスの起動時に "Bad configuration options" エラーメッセージが表示された場合はどうすればよいですか?
SSHサービス関連のディレクトリまたはファイル
SSHサービスは、セキュリティを確保するために、実行時に関連するディレクトリまたはファイルの権限設定とグループをチェックします。 ディレクトリまたはファイルに対する不適切な権限により、SSHサービスが期待どおりに実行されなくなり、クライアントからのログオンに失敗する可能性があります。 SSHログインが失敗した場合は、返されたエラーメッセージに基づいて問題をトラブルシューティングします。 詳細については、以下のトピックをご参照ください。
SSHキーの設定
SSHは非対称暗号化を使用してデータを暗号化します。 クライアントとサーバーは、メッセージの完全性と暗号化のためにキーを交換して検証します。 SSHログインが失敗した場合は、返されたエラーメッセージに基づいて問題をトラブルシューティングします。 詳細については、次のトピックをご参照ください。
SSHを使用してインスタンスに接続したときに「ホストキーの検証に失敗しました」というエラーメッセージが表示された場合はどうすればよいですか?