このトピックでは、Linux インスタンスへのリモートログインの失敗をトラブルシューティングする方法について説明します。
Linux インスタンスへの緊急ログイン: 緊急時で、できるだけ早く O&M のために Linux インスタンスにログインする必要がある場合は、VNC 接続を使用できます。詳細については、「VNC を使用してインスタンスに接続する」をご参照ください。
原因
SSH リモートログインの失敗は、Pluggable Authentication Modules (PAM) セキュリティフレームワーク、セキュリティグループ、SSH 構成などの要因によって引き起こされる可能性があります。特定の状況に基づいて接続の失敗をトラブルシューティングし、解決してください。
特定のエラーメッセージが返されない
セルフサービスのトラブルシューティングツールの使用
Alibaba Cloud セルフサービスのトラブルシューティングツールを使用すると、セキュリティグループの構成、インスタンスの内部ファイアウォール、および一般的なアプリケーションポートのリスナーステータスをすばやく確認できます。このツールは、詳細な診断レポートを提供します。
をクリックしてセルフサービスのトラブルシューティングページに移動し、ターゲットリージョンに切り替えます。
セルフサービスのトラブルシューティングツールで問題を特定できない場合は、次の手順に従って手動で問題をトラブルシューティングしてください。
手動での問題のトラブルシューティング
リモート接続が失敗したときにエラーメッセージが返されない場合は、次の手順に従って手動で問題をトラブルシューティングします。
ステップ 1: Workbench を使用してリモートログインをテストする
Alibaba Cloud が提供する Workbench ツールを使用して、リモートでログインできます。リモートログインエラーが発生した場合、Workbench は特定のエラーメッセージとソリューションを返します。テスト手順は次のとおりです。
ECS コンソール - インスタンス に移動します。
上部のナビゲーションバーで、管理するリソースのリージョンとリソースグループを選択します。
ターゲットインスタンスの ID をクリックします。インスタンスの詳細ページで、[接続] をクリックします。
リモート接続 ダイアログボックスで、ワークベンチ を見つけ、今すぐサインイン をクリックします。
リモートログインをテストします。
Workbench は、ターゲットインスタンスへのログインに必要な基本情報を自動的に入力します。情報が正しいことを確認し、ユーザー名と認証情報を入力します。結果に基づいて次のように進めます。Workbench を使用して Linux インスタンスにリモートでログインする方法の詳細については、「Workbench を使用して Linux インスタンスにリモートでログインする」をご参照ください。
ログインがまだ失敗する場合、Workbench はエラーメッセージとソリューションを返します。プロンプトに従って問題を解決してください。問題を解決した後、Workbench を使用して再度リモートログインをテストします。Workbench の使用時に発生する可能性のある一般的なエラーについては、「インスタンスへの VNC 接続に関する問題」をご参照ください。
Workbench を使用してログインできる場合、ターゲットインスタンスの SSH サービスは正常に実行されています。これにより、SSH サーバー側のエラーの可能性が排除されます。ステップ 2: ネットワークの確認 に進むことができます。
ステップ 2: ネットワークの確認
Linux インスタンスにリモートで接続できない場合は、まずネットワークが正常に機能しているかどうかを確認します。
別のネットワークセグメントや別のキャリアのネットワークなど、異なるネットワーク環境のコンピューターからテストを実行して、問題がオンプレミスネットワークまたはサーバーによって引き起こされているかどうかを判断します。
問題がオンプレミスネットワークまたはキャリアにある場合は、ローカルの IT スタッフまたはキャリアに連絡して解決してください。
ネットワークインターフェイスカード (NIC) のドライバーが正常に機能していない場合は、再インストールしてください。
ローカルクライアントで、ping コマンドを使用してインスタンスへのネットワーク接続をテストします。
ネットワークが異常な場合は、パケットをキャプチャして分析します。詳細については、「パケットキャプチャツールを使用してネットワークパケットをキャプチャする」をご参照ください。
パケット損失が発生した場合、または ping が失敗した場合は、
tracertやmtrなどのツールを使用してリンクテストを実行し、根本原因を特定します。詳細については、「MTR を使用したネットワークリンク分析」をご参照ください。システムカーネルが ping リクエストを禁止していないにもかかわらず、ping コマンドが ECS インスタンスへの接続に失敗する場合、インスタンスのオペレーティングシステムの内部ファイアウォールに、クライアントからのパケットをドロップするポリシーがある可能性があります。
詳細については、「ECS インスタンスのパブリック IP アドレスへの ping の失敗のトラブルシューティング」をご参照ください。
ステップ 3: ポートとセキュリティグループの確認
セキュリティグループの構成で、リモート接続ポートでの接続が許可されているかどうかを確認します。
ECS コンソール - インスタンス に移動します。
上部のナビゲーションバーで、管理するリソースのリージョンとリソースグループを選択します。
インスタンスリストで、対応するインスタンス ID をクリックします。
[セキュリティグループ] タブで、セキュリティグループを見つけ、[操作] 列の [ルールの管理] をクリックします。
[セキュリティグループの詳細] ページで、[ルール] エリアの [インバウンド] タブで、[ルールの追加] をクリックし、次のパラメーターでルールを構成します。
アクション: 許可
優先度 : 1 (値が小さいほど優先度が高くなります。1 が最も高い優先度です。)
プロトコル: カスタム TCP
ソース: IP アドレスを入力します。
https://cip.cc/にアクセスして IP アドレスを確認できます。[宛先 (現在のインスタンス)] で、[SSH (22)] を選択します。
次のコマンドを実行してポートをテストし、正常に機能しているかどうかを確認します。
telnet [$IP] [$Port]説明[$IP] は Linux インスタンスの IP アドレスです。
[$Port] は Linux インスタンスのリモート接続ポート番号を指定します。
システムは次のような応答を表示します。たとえば、
telnet 192.168.0.1 22コマンドを実行すると、通常の応答は次のようになります。Trying 192.168.0.1 ... Connected to 192.168.0.1. Escape character is '^]'ポートテストが失敗した場合は、トラブルシューティングについて、「ECS インスタンスに ping 可能な場合のポート障害のトラブルシューティング」をご参照ください。
ステップ 4: CPU 負荷、帯域幅、メモリ使用量の確認
リモート接続の失敗は、高い CPU 負荷、不十分な帯域幅、またはメモリ不足エラーが原因である可能性があります。
高い CPU 負荷を確認し、適切なアクションを実行します。
CPU 負荷が高い。
アプリケーションのディスクアクセス、ネットワークアクセス、またはコンピューティング要件が高い場合、高い CPU 負荷が予想されます。インスタンスタイプをスペックアップして、リソースのボトルネックを解決できます。詳細については、「インスタンスタイプのスペックアップとスペックダウンの概要」をご参照ください。
説明高い CPU 負荷のソリューションについては、「Linux システムの CPU 負荷のクエリと分析」をご参照ください。
CPU 負荷が高くない場合は、次のステップに進みます。
パブリック帯域幅が不十分でないか確認します。
リモート接続の失敗は、パブリック帯域幅の不足が原因である可能性があります。この問題をトラブルシューティングするには、次の手順を実行します。
ECS コンソール - インスタンス に移動します。
上部のナビゲーションバーで、管理するリソースのリージョンとリソースグループを選択します。
インスタンスリストで、インスタンス ID をクリックします。[構成情報] セクションで、[インターネット帯域幅] を表示します。
インスタンスの帯域幅が 0 Mbps の場合、インスタンスにはパブリック帯域幅がありません。この問題を解決するには、帯域幅をスペックアップできます。詳細については、「帯域幅構成の変更 (ネットワークリソース)」をご参照ください。
メモリ不足を確認します。
Linux インスタンスにリモート接続した後、デスクトップが正しく表示されず、エラーメッセージなしで接続が閉じる場合があります。この問題は、インスタンスのメモリ不足が原因である可能性があります。次の手順を実行して、インスタンスのメモリ使用量を確認します。
VNC 接続を使用して Linux インスタンスにログインします。
詳細については、「パスワードを使用して Linux インスタンスにログインする」をご参照ください。
メモリ使用量を表示します。メモリが不足している場合は、インスタンスタイプをスペックアップしてリソースのボトルネックを解決できます。詳細については、「インスタンスタイプのスペックアップとスペックダウンの概要」をご参照ください。
特定のエラーメッセージが返される
リモートログインが失敗すると、通常、システムはエラーメッセージを返します。エラーメッセージを使用して、原因をすばやく特定し、ソリューションを見つけることができます。
PAM セキュリティフレーム
Linux の Pluggable Authentication Modules (PAM) セキュリティフレームワークは、セキュリティモジュールをロードして、ECS インスタンスのアカウントポリシーとログインポリシーへのアクセスを制御できます。関連する構成が正しくない場合、またはポリシーがトリガーされた場合、SSH ログインが失敗することがあります。一般的なケースは次のとおりです。
Linux インスタンスのシステム環境構成
ウイルス、不正なアカウント構成、不正な環境変数構成など、Linux システム環境の問題により、SSH ログインが失敗することがあります。一般的なケースは次のとおりです。
SSH サービスとパラメーター設定
SSH サービスのデフォルトの構成ファイルは /etc/ssh/sshd_config です。構成ファイル内の不正なパラメーター設定、または特定の有効化された属性やポリシーにより、SSH ログインが失敗することがあります。一般的なケースは次のとおりです。
SSH を使用して Linux インスタンスにログインする際の「Disconnected: No supported authentication methods available」エラー
SSH コマンドを使用して Linux インスタンスにログインする際の「User root not allowed because not listed in」エラー
root ユーザーを使用して SSH 経由で Linux インスタンスにログインする際の「Permission denied, please try again」エラー
SSH を使用してインスタンスにログインする際の「Too many authentication failures for root」エラー
Linux ECS インスタンスで SSH サービスを開始する際の「fatal: Cannot bind any address」エラー
SSH サービスに関連するディレクトリまたはファイルの設定
セキュリティ上の理由から、SSH サービスは実行時に関連ディレクトリとファイルの権限設定、オーナー、およびグループをチェックします。権限が高すぎたり低すぎたりすると、サービスエラーが発生し、クライアントのログインが失敗する可能性があります。一般的なケースは次のとおりです。
SSH サービスキーの構成
SSH サービスは、非対称暗号化を使用して送信データを暗号化します。クライアントとサーバーは、関連するキー情報を交換し、その有効性を検証します。一般的なケースは次のとおりです。
SSH を使用して ECS インスタンスにログインする際の「Host key verification failed」エラー