SSH接続のトラブルシューティング
SSHを使用してコンピュート・インスタンスに接続できない場合は、次のトラブルシューティング・エラー・メッセージおよび提案を確認して問題を解決してください。
インスタンスを初めて作成する場合は、ガイド付きチュートリアルで次の点を考慮してください。
インスタンスを初めて作成する場合は、まずVirtual Cloud Network (VCN)を作成することをお薦めします。「VCNウィザードの起動」ワークフローを使用して、「インターネット接続性を持つVCNの作成」オプションを選択します。ワークフローにより、パブリック・サブネットとプライベート・サブネットの両方を、必要なゲートウェイおよびルート・ルールとともに自動的に構成するVCNが作成されます。また、ワークフローには、IPv6を構成するオプションがあります。ワークフローの実行の詳細は、「仮想ネットワーキングのクイックスタート」を参照してください。
SSHエラー: ホストw.x.y.zポート22に接続: 操作がタイムアウトしました
このエラーは、SSHが指定されたIPアドレスのホストに接続できないことを意味します。次のシナリオをチェックして、問題を解決します。
システムにインターネットアクセスがあることの確認
- SSHコマンドが実行されている環境とインターネット・アクセスがあることを確認します。
-
- Windows:コマンド・プロンプト・ウィンドウを開きます。
- MacOS/Linux:端末ウィンドウを開きます。
- google.comやamazon.comなどの既知のホストをPingします。
- pingコマンドが成功した場合は、次のオプションに進みます。
- Pingが失敗しました
-
SSH環境がインターネットにアクセスできない可能性があります。組織でインターネット・アクセスのファイアウォール設定が不明な場合は、OCI Cloud Shellを使用してインスタンスにSSH接続することを検討してください。詳細は、このページの「OCI Cloud Shell」セクションを参照してください。
OCI設定の確認
次に、OCI設定を確認して構成を確認します。
- インスタンス詳細のオープン
-
- OCIコンソールにログインします。
- ナビゲーション・メニューを開き、「コンピュート」をクリックします。「コンピュート」で、「インスタンス」をクリックします。
- インスタンスを選択します。インスタンス詳細ページが表示されます。
- 次の設定を確認します
-
- インスタンスが実行中であり、停止されていないことを確認します。
- インスタンスにパブリックIPアドレスがあることを確認します。
- 「インスタンス・アクセス」セクションを確認します。パブリックIPアドレスが割り当てられている場合、そのアドレスにはパブリック・アクセスIPアドレスというラベルが付けられます:
- 「インスタンス・アクセス」セクションが空の場合、パブリックIPアドレスは割り当てられません。
- パブリック・アドレスがある場合は、SSHコマンドで正しいIPアドレスを使用していることを確認してください。
- パブリックIPアドレスがない場合は、VCNサブネットを確認してください。
- プライベート・サブネットを使用している場合は、インターネットからインスタンスに接続できません。プライベート・サブネットの使用の項を参照してください。
- パブリック・サブネットでインスタンスを作成したが、インスタンスの作成時にパブリックIPアドレスを割り当てなかった場合は、「既存のプライマリ・プライベートIPへのエフェメラル・パブリックIPの割当て」を参照してください。
- IPアドレスを設定した後、インスタンスを再起動し、SSHを使用してインスタンスへの接続を試行します。
インスタンスのパブリックIPアドレスがパブリック・サブネットにあり、まだ接続できません
OCIを初めて使用する場合は、次のトラブルシューティング・ステップがより進みます。高速化するには、次のヒントの説明に従って、新しいVCNと新しいコンピュート・インスタンスを設定することを検討してください。
インスタンスを初めて作成する場合は、ガイド付きチュートリアルで次の点を考慮してください。
インスタンスを初めて作成する場合は、まずVirtual Cloud Network (VCN)を作成することをお薦めします。「VCNウィザードの起動」ワークフローを使用して、「インターネット接続性を持つVCNの作成」オプションを選択します。ワークフローにより、パブリック・サブネットとプライベート・サブネットの両方を、必要なゲートウェイおよびルート・ルールとともに自動的に構成するVCNが作成されます。また、ワークフローには、IPv6を構成するオプションがあります。ワークフローの実行の詳細は、「仮想ネットワーキングのクイックスタート」を参照してください。
- インスタンス詳細のオープン
-
- OCIコンソールにログインします。
- ナビゲーション・メニューを開き、「コンピュート」をクリックします。「コンピュート」で、「インスタンス」をクリックします。
- インスタンスを選択します。インスタンス詳細ページが表示されます。
- VCN構成の確認
-
- このインスタンスに割り当てられているVCNをクリックします。
- インターネット・ゲートウェイ・リソースで少なくとも1つのインターネット・ゲートウェイが使用可能であることを確認してください。
- インターネット・ゲートウェイが割り当てられていない場合は、次の項に進みます。
- インターネット・ゲートウェイが割り当てられている場合は、パブリック・サブネットにゲートウェイに割り当てられたルート・ルールがあることを確認してください。
- 「サブネット」リソースで、パブリック・サブネットを選択します。
- 「サブネット情報」で、「ルート表」リンクをクリックします。
- 宛先が
0.0.0.0/0
の静的ルートがあることを確認します。 - ルート エントリが見つからない場合は、次のセクションに進みます。
- パブリック・サブネットが正しく構成されていません
-
パブリック・サブネットが正しく構成されていないと思われる場合は、サブネットを再構成するオプションが2つあります。
(1)計算クイック処理の使用
インスタンスの詳細ページから:
- 「リソース」リストで、「クイック・アクション」を選択します。
- 「インターネットへのパブリック・サブネットの接続」クイック・アクションで、「接続」をクリックします。
- ワークフローに従ってインスタンスに接続します。
(2)パブリック・サブネットを手動で作成します。
- シナリオA: パブリック・サブネットのドキュメントを使用して、新しいパブリック・サブネットを設定および構成するステップを順を追って説明します。
- 新しいパブリック・サブネットに新しいコンピュート・インスタンスを作成します。
- セキュリティ・リストのチェック
-
問題が引き続き発生する場合は、セキュリティ・リストでポート22のトラフィックが許可されていることを確認します。詳細は、セキュリティ・リストを参照してください。
- 高度なトラブルシューティング
-
上級ユーザーは、ネットワーク・パス・アナライザを使用してネットワーク接続をさらにトラブルシューティングできます。詳細は、Network Path Analyzerを参照してください。
SSH: ホストw.x.y.zポート22に接続: 接続が拒否されました
このエラー・メッセージは、ホストがターゲット・アドレスでリスニングしているが、ポート22に接続できないために発生します。
Netcat(nc)を使用して、SSHが実行中であることを確認します。
LinuxまたはMacOS
ターミナル・ウィンドウで、次のコマンドを実行します:
nc <public ip> 22
-
コマンドが次のようなメッセージを返す場合:
SSH-2.0-OpenSSH_9.4
インスタンスに正常に接続し、SSHが実行されていることを確認しました。SSHコマンドでIPアドレスを再確認し、正しいことを確認します。
コマンドで何も返されない場合:
- インスタンスの詳細ページでパブリックIPアドレスを確認し、正しいアドレスを使用していることを確認します。
- コマンドで使用されているIPアドレスをダブルチェックし、正しいことを確認します。
または、次のセクションに進みます。
Windows
PowerShellウィンドウで、次のコマンドを実行します:
tnc <public ip> -p 22
-
コマンドが次のようなメッセージを返す場合:
ComputerName : <public ip> RemoteAddress : <public ip> RemotePort : 22 InterfaceAlias : Ethernet SourceAddress : <source ip> TcpTestSucceeded : True
インスタンスに正常に接続し、SSHが実行されていることを確認しました。SSHコマンドでIPアドレスを再確認し、正しいことを確認します。
- コマンドが返す場合:
WARNING: TCP connect to (<public ip>) failed
- インスタンスの詳細ページでパブリックIPアドレスを確認し、正しいアドレスを使用していることを確認します。
- コマンドで使用されているIPアドレスをダブルチェックし、正しいことを確認します。
それ以外の場合は、次のセクションでトラブルシューティングを続行します。
SSHは実行されていません
- インスタンスがパブリック・サブネット上にあることを確認します。
- インスタンスがプライベート・サブネット上にある場合、インスタンスに直接接続することはできません。プライベート・サブネットの使用の項を参照してください。
- ポート22への接続を許可するようにセキュリティ・リストが構成されていることを確認します。詳細は、セキュリティ・リストを参照してください。
- インスタンスを再起動して、SSHデーモンを再起動します。
- 拡張:カスタム・イメージを使用していて、SSHサービスを起動またはインストールする必要がある場合は、シリアル・コンソールを使用してインスタンスに接続します。
<user-name>@w.x.y.z: 権限が拒否されました(publickey、gssapi-keyex、gssapi-with-mic)
このエラー・メッセージは、SSHがSSHサービス・ホストに接続しているが、SSHコマンドに問題があることを示しています。
SSHコマンドに関する次の問題を確認してください
- SSHのすべてのコマンドライン・オプションをダブルチェックします。不正なオプションを指定すると、このエラーメッセージが表示されることがあります。
- 次に、Oracle Linuxに接続するための正しくフォーマットされたSSHコマンドの例を示します。
ssh -i <my-private-key-file> opc@x.x.x.x
- 次に、Oracle Linuxに接続するための正しくフォーマットされたSSHコマンドの例を示します。
- インスタンスに正しいユーザー名を使用していることを確認します。
- Oracle Linuxまたはその他のRed Hat互換OSesの場合は、
opc
を使用します。 - Ubuntu Linuxの場合は、
ubuntu
を使用します。
- Oracle Linuxまたはその他のRed Hat互換OSesの場合は、
- 正しい秘密キーを使用していることを確認してください。間違った秘密鍵ファイルを使用すると、このエラーメッセージが表示されます。
- キーを含むディレクトリにいることを確認します。
- または、秘密キーへのパスが正しいことを確認してください。
- 私は秘密鍵をなくした。
- 新しいインスタンスを作成し、新しい公開鍵と秘密鍵をダウンロードします。
- 新しい公開鍵および非公開鍵セットを作成します。新しいインスタンスを作成します。
クラウド・シェルを使用したOCIインスタンスへの接続
OCI Cloud Shellは、OCIコンソールからアクセス可能なWebブラウザベースのターミナルです。クラウド・シェルは(月次テナンシ制限内で)無償で使用でき、Linuxシェルへのアクセスを提供します。このシェルには、事前認証済のOCI CLI、事前認証済のAnsibleインストールおよびその他の便利なツールが含まれています。
インスタンスに接続の問題がある場合、Cloud ShellはSSHに接続するための効果的なオプションです。Cloud Shellはブラウザ・ベースであるため、ラップトップまたは企業のファイアウォール設定による潜在的な接続の問題を排除します。この項では、Cloud Shellの使用方法に関する情報にリンクします。
-
クラウド・シェルの詳細は、クラウド・シェルを参照してください。
-
Cloud Shellへのアクセス方法の詳細は、Cloud Shellの使用に関する項を参照してください。
- クラウド・シェルのセッションをプライベート・ネットワークに接続する方法の詳細は、クラウド・シェルのプライベート・ネットワーキングを参照してください。
プライベート・サブネットの使用
コンピュート・インスタンスがプライベート・サブネット上にある場合、一般的に2つのシナリオがあります。
- (1)インスタンスはプライベート・サブネット上にあるが、パブリック・サブネット上にある必要がある
-
パブリック・サブネットにインスタンスを含めるには、次のオプションがあります。
- 現在のVCNのパブリック・サブネットに新しいインスタンスを作成します。古いインスタンスを終了します。
- 現在のVCNに新しいパブリック・サブネットを作成します。新しいパブリック・サブネットに新しいインスタンスを作成します。古いインスタンスを終了します。
- 新しいVCNをパブリック・サブネットとともに作成し、新しいインスタンスをパブリック・サブネットに作成します。古いインスタンスを終了します。
ヒント
インスタンスを初めて作成する場合は、ガイド付きチュートリアルで次の点を考慮してください。ヒント
インスタンスを初めて作成する場合は、まずVirtual Cloud Network (VCN)を作成することをお薦めします。「VCNウィザードの起動」ワークフローを使用して、「インターネット接続性を持つVCNの作成」オプションを選択します。ワークフローにより、パブリック・サブネットとプライベート・サブネットの両方を、必要なゲートウェイおよびルート・ルールとともに自動的に構成するVCNが作成されます。また、ワークフローには、IPv6を構成するオプションがあります。ワークフローの実行の詳細は、「仮想ネットワーキングのクイックスタート」を参照してください。 - (2)インスタンスが意図的にプライベート・サブネット上にある
-
コンピュート・インスタンスがプライベート・サブネット上にある場合、次のものを使用して接続できます:
- クラウド・シェル: 詳細は、このページの「OCIクラウド・シェル」セクションを参照してください。
- 要塞は、パブリック・エンドポイントがないターゲット・リソースへの制限および時間制限付きのアクセスを提供します。詳細は、要塞の概要を参照してください。
追加の接続およびインスタンスのトラブルシューティング・オプション
このページの焦点は、SSHコマンドを使用してインスタンスに接続することです。コンピュート・インスタンスのトラブルシューティングに使用できるその他のツールを次に示します。
シリアル・コンソールを使用したトラブルシューティング
OCIコンソール接続を使用すると、インスタンスのシリアル・コンソールを使用してインスタンスに接続できます。これにより、インスタンスをリモートでトラブルシューティングおよび構成できます。詳細は、インスタンス・コンソール接続を使用したインスタンスのトラブルシューティングを参照してください。
- ブート・プロセスを中断してメンテナンス・モードを起動します。
- メンテナンス・モードで、
opc
ユーザーのSSHキーを追加またはリセットします。
インスタンス・ヘルスの確認
インスタンスの詳細ページでは、インスタンスのヘルスなど、インスタンスに関連するメトリックを確認できます。oci_compute_instance_health
メトリックを使用すると、VMインスタンスが応答しないかどうかをモニターできます。コンピュートにより、アドレス解決プロトコル(ARP)のリクエストが、インスタンスの仮想ネットワーク・インタフェース・カード(VNIC)に送信されます。ARP pingが失敗した場合、メトリックはインスタンスが応答していないことを示します。
メトリックを使用するには、詳細ページの「メトリック・ネームスペース」コントロールからoci_compute_instance_health
を選択します。詳細は、コンピュート・インスタンス・ヘルス・メトリックを参照してください。
その他のコンピュート・トラブルシューティング・セクション
SSHに加えて、次のトラブルシューティング・トピックも使用できます。