SSHを使用したクラスタ・ノードへの接続

コマンド・シェルを介してビッグ・データ・サービス・クラスタ・ノードに接続するには、Secure Shell (SSH)を使用します。

SSHキー・ペアがクラスタの作成時に作成され、公開キーがクラスタのすべてのノードにインストールされます。クラスタの作成を参照してください。他のキー・ペアの作成の詳細は、Linuxインスタンスでのキー・ペアの管理を参照してください。

前提条件
SSHを使用してクラスタに接続するには、必要です:
  • クラスタに割り当てられた公開キーに関連付けられたSSH秘密キーへのアクセス権があります。

    秘密キー・ファイルに対する権限では、読取り/書込み/実行アクセスを許可する必要がありますが、他のユーザーがファイルにアクセスできないようにする必要があります。たとえば、適切な権限を設定するには、chmod 600 ~/.ssh/my_keys/my_host_key_filenameと入力します。権限が正しく設定されず、他のユーザーが秘密キー・ファイルにアクセスできる場合、SSHユーティリティは秘密キー・ファイルを無視します。

  • 接続先のノードのパブリックIPアドレスを確認します。IPアドレスを確認するには、Oracle Cloudコンソールの「ノードの詳細」ページを参照します。クラスタ・ノードの詳細の取得を参照してください。
  • ポート22が開いていることを確認します。セキュリティ・ルール定義を参照してください。
コマンドラインでのSSHを使用したクラスタへの接続:

パブリック・サブネット内のノードに接続するには:

  1. 次のコマンドを使用して、自分のみがファイルを読み取ることができるようにファイルのアクセス権を設定します:
    $ chmod 400 <private_key>

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

  2. 次のSSHコマンドを使用してクラスタにアクセスします。
    $ ssh –i <private_key> <username>@<public-ip-address>

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

    <username>は、クラスタのデフォルト名です。デフォルトのユーザー名はopcです。

    <public-ip-address>は、アクセスするクラスタ・ノードのパブリックIPアドレスです。

ノート

SSH秘密キーが、SSHユーティリティが予測するファイルまたはパスに格納されていない場合(たとえば、SSHユーティリティが秘密キーを~/.ssh/id_rsaに格納することを期待している場合があります)、2つのうちいずれかの方法で秘密キー・ファイル名と場所を明示的に指定する必要があります:

  • -iオプションを使用して、秘密キーのファイル名と場所を指定します。たとえば、ssh -i ~/.ssh/my_keys/my_host_key_filename opc@192.0.2.254です
  • 秘密キーのファイル名と場所を、SSH構成ファイル、クライアント構成ファイル(~/.ssh/config) (存在する場合)またはシステム全体のクライアント構成ファイル(/etc/ssh/ssh_config)に追加します。たとえば、次を追加する場合があります: Host 192.0.2.254 IdentityFile ~/.ssh/my_keys/my_host_key_filename

SSHユーティリティの構成ファイルの詳細は、man ssh_configと入力します

SSHを使用したプライベート・サブネット内のノードへの接続

プライベート・サブネットのワーカー・ノードには、プライベートIPアドレスのみがあります(パブリックIPアドレスがありません)。VCN内の他のリソースからのみアクセスできます。要塞ホストを使用して、プライベート・サブネットのワーカー・ノードへの外部アクセス(SSHなど)を制御することをお薦めします。要塞ホストはパブリック・サブネットにあり、パブリックIPアドレスを持ち、インターネットからアクセスできます。要塞ホストの詳細は、要塞のドキュメントを参照してください。

要塞サービスを使用してBDSクラスタ・ノードにSSH接続します。

  1. 作成したクラスタと同じサブネットを使用して要塞サービスを作成します。
  2. クラウド・テナンシにログインします: 「アイデンティティとセキュリティ」を選択し、「要塞」を選択し、「要塞の作成」を選択します。
  3. 選択した要塞名およびBDSクラスタが作成されるサブネットを入力します。
  4. CIDRブロック許可リストに、ローカル・マシンのIPアドレスが要塞リソースにアクセスできるようにする0.0.0.0/0と入力します。
  5. 「拡張オプションの表示」で、「最大セッション存続時間(TTL)」プロパティを使用して、この要塞で作成できるセッションのTTLを設定します。
  6. 「要塞の作成」を選択します。
  7. 「セッションの作成」を選択して、セッションを作成します。
  8. 「セッション・タイプ」で、SSH Port Forwarding Sessionを選択します。
  9. セッションの名前を入力します。
  10. 「IPアドレス」セクションに、クラスタ・ノードの1つのプライベートIPアドレスを入力します。
  11. ポート22を Portに保持します。
  12. 「SSHキー・ペアの生成」オプションを使用してキー・ペアを作成するか、公開秘密キー・ペアの公開キーを使用します。
  13. 「拡張オプションの表示」で、セッションのTTLを設定します。デフォルトは、180分です。
  14. セッション名の横にある「アクション」メニュー(3つのドット)を選択し、「SSHコマンドのコピー」を選択します。
  15. メモ帳を使用してコピーされたSSHコマンドで、プレースホルダ( <privateKey><localPort>など)を更新します。たとえば、コンソールからコピーされたSSHコマンド:
    ssh -i <privateKey> -N -L <localPort>:<PRIVATE-IP>:22 -p 22 
                                ocid1.bastionsession.oc1.<region>.abcdefghijklmnopqrstuvwxyz@host.bastion.region.oci.oraclecloud.com
    更新されたSSHコマンド:
    ssh -i ~/.ssh/my_private_key -N -L 7183:<PRIVATE-IP>:22 -p 22 
                                ocid1.bastionsession.oc1.<region>.abcdefghijklmnopqrstuvwxyz@host.bastion.region.oci.oraclecloud.com

    前述の例では、<privateKey>は、ステップ12で使用された公開キーの秘密キーに置き換えられ、<localPort>はランダム・ポート7183に置き換えられます。1024から65535の範囲で、非特権ポートと呼ばれる任意のポートを選択できます。使用しているポートが他のサービスで使用されていないことを確認してください。netstatまたは同様のコマンドを使用して、ポートの使用状況を確認できます。

  16. 要塞へのトンネルを確立したターミナルで、更新されたSSHコマンドを実行します。
  17. 他の端末では、ステップ15で構成したローカル・ポートを使用してクラスタ・ノードにサインインできます。
    例:
    ssh -i ~/.ssh/my_private_key -p 7183 opc@localhost
Microsoft WindowsでのPuTTYを使用した接続
  1. putty.exeを開きます。
  2. 「Category」ペインで、「Window」を展開してから「Translation」を選択します。
  3. 「リモート文字セット」リストで、「UTF-8」を選択します。Linuxベース・インスタンスでのデフォルト・ロケール設定はUTF-8で、これによって同じロケールを使用するようPuTTYが構成されます。
  4. 「Category」ペインで、「Session」を選択して次のように入力します:

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

      <username>@<public-ip-address>

      <username>は、インスタンスのデフォルト名です。デフォルトのユーザー名はopcです。

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

    • ポート: 22

    • 接続タイプ: SSH

  5. 「カテゴリ」ペインで、「Connection」「SSH」の順に展開し、「Auth」を選択します。
  6. 「参照」を選択して、秘密キーを選択します。
  7. 「開く」を選択して、セッションを開始します。

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

インスタンスでの管理タスクの実行

デフォルト・ユーザーopcとしてログインしている場合は、sudoコマンドを使用して、クラスタへのアクセスに使用されるユーザーおよびグループの作成など、管理タスクを実行できます。