インスタンスへの接続

Secure Shell (SSH)接続またはリモート・デスクトップ接続を使用して実行中のインスタンスに接続できます。ほとんどのUnixスタイル・システムには、デフォルトでSSHクライアントが含まれています。Windows 10およびWindows Server 2019システムには、通常、OpenSSHクライアントが含まれます。これは、Oracle Cloud Infrastructureによって生成されたSSHキーを使用してインスタンスを作成した場合に必要です。その他のWindowsバージョンの場合、PuTTYという無料のSSHクライアントをhttp://www.putty.orgからダウンロードできます。

ノート

SSHキーを使用せずにインスタンスを作成した場合は、シリアル・コンソールを使用してメンテナンス・モードを起動し、opcユーザーのSSHキーを追加またはリセットするか、opcユーザーのパスワードをリセットできます。または、インスタンスを停止し、ブート・ボリュームを新しいインスタンスにアタッチして、新しいインスタンスにSSHを構成することもできます。

必要なIAMポリシー

SSHを使用して実行中のインスタンスに接続する際に、アクセス権を付与するIAMポリシー は必要ありません。ただし、SSHに対してインスタンスのパブリックIPアドレスが必要です(次の前提条件を参照)。インスタンスを起動できるポリシーがある場合、そのポリシーでインスタンスのIPアドレスも取得できる可能性があります。両方に対応する最も単純なポリシーは、ユーザーにコンピュート・インスタンスを起動させるを参照してください。

管理者向け: 制限の厳しいポリシーでは、指定されたグループが既存のインスタンスのIPアドレスを取得して、インスタンスに対して電源アクション(インスタンスの停止や開始など)を使用することはできますが、インスタンスの起動または終了は行えないようにします。このポリシーでは、インスタンスとクラウド・ネットワークが1つのコンパートメント(XYZ)にまとめられていると仮定しています:

Allow group InstanceUsers to read virtual-network-family in compartment XYZ
Allow group InstanceUsers to use instance-family in compartment XYZ
ポリシーを初めて使用する場合は、ポリシーの開始共通ポリシーを参照してください。インスタンス、クラウド・ネットワーク、または他のCore Services APIリソースのポリシーを作成するための参照資料については、コア・サービスの詳細を参照してください。

前提条件

インスタンスに接続するには、次の情報が必要です:

  • インスタンスのパブリックIPアドレス。このアドレスは、コンソールのインスタンスの詳細ページで取得できます。ナビゲーション・メニューを開き、「コンピュート」をクリックします。「コンピュート」で、「インスタンス」をクリックします。次に、インスタンスを選択します。または、Core Services APIListVnicAttachments操作とGetVnic操作を使用することもできます。
  • インスタンスのデフォルトのユーザー名。Linux、CentOSまたはWindowsのプラットフォーム・イメージを使用してインスタンスを起動した場合、ユーザー名はopcです。Ubuntuプラットフォーム・イメージを使用してインスタンスを起動した場合、ユーザー名はubuntuです。
  • Linuxインスタンスの場合: インスタンスの起動時に使用したSSHキー・ペアの秘密キー部分のフルパス。キー・ペアの詳細は、Linuxインスタンスでのキー・ペアの管理を参照してください。
  • Windowsインスタンスの場合: 初めてインスタンスに接続する場合、そのインスタンスの初期パスワードが必要です。このパスワードは、コンソールのインスタンスの詳細ページで取得できます。

Linuxインスタンスへの接続

SSHを使用してLinuxインスタンスに接続します。

UNIXスタイル・システムからLinuxインスタンスに接続するには
  1. 次のコマンドを使用して、自分のみがファイルを読み取ることができるようにファイルのアクセス権を設定します:

    chmod 400 <private_key_file>

    <private_key_file>は、アクセスするインスタンスに関連付けられた秘密キーを含むファイルのフルパスおよび名前です。

  2. 次のSSHコマンドを使用してインスタンスにアクセスします。

    ノート

    次の例をコピーして、正しい文字が使用されていることを確認します。間違った文字がssh -iで使用されている場合、「ホスト名を解決できませんでした...: このホストは不明です。」というエラーが発生することがあります。
    ssh -i <private_key_file> <username>@<public-ip-address>

    <private_key_file>は、アクセスするインスタンスに関連付けられた秘密キーを含むファイルのフルパスおよび名前です。

    <username>は、インスタンスのデフォルトのユーザー名です。Oracle LinuxイメージとCentOSイメージの場合、デフォルトのユーザー名はopcです。Ubuntuイメージの場合、デフォルトのユーザー名はubuntuです。

    <public-ip-address>は、コンソールから取得したインスタンスのIPアドレスです。

OpenSSHを使用してWindowsシステムからLinuxインスタンスに接続するには

Oracle Cloud Infrastructureによって生成されたキー・ペアをインスタンスで使用する場合は、次の手順を使用します。

  1. このキー・ペアを初めて使用する場合は、自分のみがファイルを読み取ることができるようにファイル権限を設定する必要があります。次を行います:

    1. Windowsエクスプローラで秘密キー・ファイルに移動し、ファイルを右クリックして「プロパティ」をクリックします。
    2. 「セキュリティ」タブで、「詳細設定」をクリックします。
    3. 「権限」タブの「権限エントリ」で、「プリンシパル」の下に自分のユーザー・アカウントが表示されていることを確認します。
    4. 「継承の無効化」をクリックし、「継承されたアクセス許可をこのオブジェクトの明示的なアクセス許可に変換します」を選択します。
    5. 「権限エントリ」で、自分のユーザー・アカウントではない各権限エントリを選択し、「削除」をクリックします。
    6. 自分のユーザー・アカウントのアクセス許可が「フル コントロール」であることを確認します。
    7. 変更を保存します。
  2. インスタンスに接続するには、Windows PowerShellを開き、次のコマンドを実行します:

    ノート

    次の例をコピーして、正しい文字が使用されていることを確認します。間違った文字がssh -iで使用されている場合、「ホスト名を解決できませんでした...: このホストは不明です。」というエラーが発生することがあります。
    ssh -i <private_key_file> <username>@<public-ip-address>

    <private_key_file>は、アクセスするインスタンスに関連付けられた秘密キーを含むファイルのフルパスおよび名前です。

    <username>は、インスタンスのデフォルトのユーザー名です。Oracle LinuxイメージとCentOSイメージの場合、デフォルトのユーザー名はopcです。Ubuntuイメージの場合、デフォルトのユーザー名はubuntuです。

    <public-ip-address>は、コンソールから取得したインスタンスのIPアドレスです。

  3. このインスタンスに初めて接続する場合は、キーのフィンガープリントを受け入れる必要があります。フィンガープリントを受け入れるには、yesと入力し、[Enter]を押します。
PuTTYを使用してWindowsシステムからLinuxインスタンスに接続するには

Oracle Cloud Infrastructureによって生成されたSSH秘密キー・ファイルは、PuTTYと互換性がありません。インスタンス作成プロセス中に生成された秘密キー・ファイルを使用している場合は、PuTTYで使用してインスタンスに接続する前に、そのファイルを.ppkファイルに変換する必要があります。

ノート

WindowsシステムからOpenSSHを使用して接続するためにキーのファイル権限を変更した場合、キーはPuTTY接続では機能しません。かわりに、OpenSSHを使用して接続します。

生成された.key秘密キー・ファイルを変換します:

  1. PuTTYgenを開きます。

  2. 「ロード」をクリックし、インスタンスの作成時に生成された秘密キーを選択します。キー・ファイルの拡張子は.keyです。

  3. 「秘密キーの保存」をクリックします。

  4. キーの名前を指定します。新しい秘密キーの拡張子は.ppkです。

  5. 「保存」をクリックします。

.ppk秘密キー・ファイルを使用してLinuxインスタンスに接続します:

PuTTYキー・ジェネレータを使用して作成したキー・ペアをインスタンスで使用する場合は、次の手順を使用します。

  1. PuTTYを開きます。
  2. 「Category」ペインで、「Session」を選択して次のように入力します:

    • ホスト名(またはIPアドレス):

      <username>@<public-ip-address>

      <username>は、インスタンスのデフォルトのユーザー名です。Oracle LinuxイメージとCentOSイメージの場合、デフォルトのユーザー名はopcです。Ubuntuイメージの場合、デフォルトのユーザー名はubuntuです。

      <public-ip-address>は、コンソールから取得したインスタンスのパブリックIPアドレスです

    • Port: 22
    • Connection type: SSH
  3. 「Category」ペインで、「Window」を展開してから「Translation」を選択します。
  4. 「Remote character set」ドロップダウン・リストで、「UTF-8」を選択します。Linuxベース・インスタンスでのデフォルト・ロケール設定はUTF-8で、これによって同じロケールを使用するようPuTTYが構成されます。
  5. 「Category」ペインで、「Connection」を展開してから「SSH」を展開し、「Auth」をクリックします。
  6. 「Browse」をクリックして.ppk秘密キー・ファイルを選択します。

  7. 「Open」をクリックしてセッションを開始します。

    最初にインスタンスに接続する場合、サーバーのホスト・キーがレジストリにキャッシュされていないというメッセージが表示されることがあります。「Yes」をクリックして接続を続行します。

ヒント

接続に失敗した場合は、PuTTYプロキシ構成の更新が必要になることがあります。

Windowsインスタンスへの接続

リモート・デスクトップ接続を使用してWindowsインスタンスに接続できます。ほとんどのWindowsシステムには、デフォルトでリモート・デスクトップ・クライアントが含まれています。

前提条件

リモート・デスクトップ・プロトコル(RDP)を使用してWindowsインスタンスにアクセスするには、ソース0.0.0.0/0および任意のソース・ポートからの宛先ポート3389でのTCPトラフィックに対してステートフル・イングレス・セキュリティ・ルールを追加する必要があります。このセキュリティ・ルールは、そのWindowsインスタンスが属するネットワーク・セキュリティ・グループ、またはインスタンスのサブネットで使用されるセキュリティ・リストのいずれかで実装できます。

オプション1: ネットワーク・セキュリティ・グループへのルールの追加
  1. ナビゲーション・メニューを開き、「コンピュート」をクリックします。「コンピュート」で、「インスタンス」をクリックします。
  2. 関心のあるインスタンスをクリックします。
  3. 「インスタンスの詳細」「仮想クラウド・ネットワーク」で、クラウド・ネットワークの名前をクリックします。「仮想クラウド・ネットワークの詳細」ページが開きます。
  4. インスタンスが属しているネットワーク・セキュリティ・グループにルールを追加するには:

    1. 「リソース」で、「ネットワーク・セキュリティ・グループ」をクリックします。
    2. 関心のあるネットワーク・セキュリティ・グループをクリックします。
    3. 「ルールの追加」をクリックします。
    4. ルールの次の値を入力します:

      • ステートレス: このチェック・ボックスは選択を解除したままにします
      • 方向: イングレス
      • ソース・タイプ: CIDR
      • ソースCIDR: 0.0.0.0/0
      • IPプロトコル: RDP (TCP/3389)
      • ソース・ポート範囲: すべて
      • 宛先ポート範囲: 3389
      • 説明: ルールの説明(オプション)。
    5. 「追加」をクリックします。
  5. 「インスタンスの詳細」ページに戻ります: ナビゲーション・メニューを開き、「コンピュート」をクリックします。「コンピュート」で、「インスタンス」をクリックします。インスタンスをクリックします。
  6. 「プライマリVNIC」セクションの「ネットワーク・セキュリティ・グループ」で、「編集」をクリックします。
  7. 「ネットワーク・セキュリティ・グループ」リストで、編集したネットワーク・セキュリティ・グループを選択します。次に、「変更の保存」をクリックします。
オプション2: インスタンスのサブネットによって使用されるセキュリティ・リストへのルールの追加
  1. ナビゲーション・メニューを開き、「コンピュート」をクリックします。「コンピュート」で、「インスタンス」をクリックします。
  2. 関心のあるインスタンスをクリックします。
  3. 「プライマリVNIC」セクションの「サブネット」で、サブネットの名前をクリックします。「サブネットの詳細」ページが開きます。
  4. インスタンスのサブネットによって使用されるセキュリティ・リストにルールを追加するには:

    1. 「リソース」で、「セキュリティ・リスト」をクリックします。
    2. 関心のあるセキュリティ・リストをクリックします。
    3. 「イングレス・ルールの追加」をクリックします。
    4. ルールの次の値を入力します:

      • ステートレス: このチェック・ボックスは選択を解除したままにします
      • ソース・タイプ: CIDR
      • ソースCIDR: 0.0.0.0/0
      • IPプロトコル: RDP (TCP/3389)
      • ソース・ポート範囲: すべて
      • 宛先ポート範囲: 3389
      • 説明: ルールの説明(オプション)。
    5. 「イングレス・ルールの追加」をクリックします。

接続

リモート・デスクトップ・クライアントからWindowsインスタンスに接続するには
  1. リモート・デスクトップ・クライアントを開きます。
  2. 「コンピュータ」フィールドに、インスタンスのパブリックIPアドレスを入力します。インスタンスのパブリックIPアドレスコンソールから取得できます。
  3. 「ユーザー名」opcです。使用しているリモート・デスクトップ・クライアントによっては、この資格証明を入力する前にインスタンスに接続する必要があります。
  4. 「接続」をクリックしてセッションを開始します。
  5. プロンプトが表示されたら、証明書を受け入れます。
  6. インスタンスに初めて接続する場合は、インスタンスの起動時にOracle Cloud Infrastructureによって提供された初期パスワードを入力します。ログイン直後に、パスワードの変更を求められます。新規パスワードは12文字以上の長さで、Microsoftのパスワード・ポリシーに準拠している必要があります。

    それ以外の場合は、作成したパスワードを入力します。カスタム・イメージを使用している場合、イメージの作成元のインスタンスのパスワードが必要になることがあります。Windowsカスタム・イメージの詳細は、Windowsカスタム・イメージの作成を参照してください。

  7. [Enter]を押します。

要塞を使用したプライベート・サブネットのインスタンスへの接続

インスタンスにアタッチされているサブネットは、パブリックまたはプライベートです。プライベート・サブネットのインスタンスは、パブリックIPアドレスを持つことができません。Oracle Cloud Infrastructure Bastionを使用すると、パブリックIPアドレスを持たないインスタンスに、制約と時間制限付きでアクセスできるようになります。

要塞により、認可されたユーザーはSSHセッションを使用して特定のIPアドレスからインスタンスに接続できます。セッションに接続している場合、ユーザーはSSHでサポートされているソフトウェアまたはプロトコルを使用してインスタンスとやり取りできます。

要塞サービスでは、2つのタイプのセッションが認識されます。

  • 管理対象SSHセッションは、インスタンスのオペレーティング・システムへの管理アクセスを提供します。このセッション・タイプを使用してインスタンスに接続するには、インスタンスで要塞プラグインが有効になっていて、かつプラグインが実行されている必要があります。プラグインを有効にして実行する方法の詳細は、Oracle Cloud Agentを使用したプラグインの管理を参照してください。
  • ポート転送セッション(SSHトンネリングとも呼ばれる)は、クライアント・マシンの特定のポートとインスタンスの特定のポート間にセキュアな接続を作成します。このSSH接続を使用すると、リモート・デスクトップ・プロトコル(RDP)のような他のプロトコルをリレーできます。

SSH接続のトラブルシューティング

SSHを使用してインスタンスに接続できない場合は、次のトラブルシューティング・ステップに従って一般的な問題を特定します。

  • 接続の確認: ターミナル・ウィンドウで、nc <public ip> 22を実行します。
    • SSHバナーが表示された場合: SSHを使用してインスタンスに正常に接続しました。根本的な問題は権限に関連している可能性があります。次のステップとして、資格証明を確認します。インスタンスへのSSHに使用している資格証明が正しくない場合、接続は失敗します。

      Linuxインスタンスでは、インスタンスの起動時に使用したSSHキー・ペアの秘密キー部分のフルパスが必要です。キー・ペアの詳細は、Linuxインスタンスでのキー・ペアの管理を参照してください。Windowsインスタンスでは、インスタンスに初めて接続する場合、そのインスタンスの初期パスワードが必要です。このパスワードは、コンソールのインスタンスの詳細ページで取得できます。

    • SSHバナーが表示されない場合: ネットワークの問題により、SSH接続が成功しない可能性があります。次の提案を確認してください。
  • パブリックIPアドレスの追加: 接続がインターネット経由でルーティングされており、かつ要塞を使用していない場合、インスタンスに接続するには、そのインスタンスにパブリックIPアドレスが必要です。パブリックIPアドレスがない場合、インスタンスにアクセスできません。インスタンスでパブリックIPv4アドレスを管理する方法の詳細は、パブリックIPアドレスに関する項を参照してください。
  • ネットワーク・セキュリティ・リストの検証: Oracle Cloud Infrastructureは、SSHトラフィックを許可するセキュリティ・リストのデフォルト・セットを各クラウド・ネットワークにプロビジョニングします。SSH接続を許可するセキュリティ・リストが削除されると、インスタンスにアクセスできなくなります。ポート22を開くセキュリティ・リストが存在することを確認します。コンソールを使用して、セキュリティ・リストを表示および管理できます。セキュリティ・リストの詳細は、セキュリティ・リストに関する項を参照してください。
  • インスタンスでSSHが実行されていることの確認: SSHが実行されていることを確認するステップは、オペレーティング・システムによって異なります。ご使用のオペレーティング・システムのドキュメントを確認して、SSHが実行されていることを確認する方法の説明を参照してください。
  • シリアル・コンソール履歴の取得: インスタンスのシリアル・コンソール・データ履歴は、コンソールで、またはCLIでconsole-historyリソースを使用して取得できます。この情報は、接続の問題の原因を特定するのに役立ちます。CLIの使用の詳細は、console-historyおよびコマンドライン・インタフェース(CLI)を参照してください。

    CLIを使用してインスタンスのシリアル・コンソール・データ履歴を取得する場合、完全な履歴を確実に取得するには、次のオプションを含める必要があります。このオプションを指定しないと、データが切り捨てられる可能性があります: --length 10000000

  • シリアル・コンソールへの接続: シリアル・コンソール接続を使用すると、正常に動作していないインスタンスをリモートからトラブルシューティングできます。詳細は、インスタンス・コンソール接続を使用したインスタンスのトラブルシューティングを参照してください。シリアル・コンソールから、ブート・プロセスを中断してメンテナンス・モードを起動できます。メンテナンス・モードでは、opcユーザーのSSHキーを追加またはリセットできます。