Oracle Cloud Servicesでの使用のためのSSHキーの作成


オプション



開始する前に

目的

このチュートリアルでは、次の2つの方法でセキュア・シェル(SSH)鍵のペアを作成する方法について説明します。

  • WindowsでPuTTYを使用して。

  • LinuxやSolarisなどのUNIXおよびUNIX型システムの多くにすでに含まれるSSHユーティリティでのコマンドラインを使用して。あるいは、UNIXでOpenSSH、またはWindowsでCygwinをインストールおよび使用することもできます。

所要時間

約30分。

背景

Oracle Java Cloud ServiceやOracle Database Cloud - Database as a ServiceなどのOracle Cloudサービスは、Oracle Compute Cloud Serviceで提供されるインフラストラクチャおよび機能性の上に構築されます。これらのOracle Cloudサービスの1つのサービス・インスタンスを作成すると、サービス・インスタンスのサポートに必要なすべてのOracle Compute仮想マシン(VM)がユーザー用にプロビジョニングされて構成されます。

セキュア・シェル(SSH)を介してマシンにログインすることで、VMで提供されたサービス・インスタンスおよびリソースにアクセスできます。これを行うには、VM用のSSH公開鍵/秘密鍵のペアが必要です。サービス・インスタンスを作成する場合は公開鍵が必要です。また、SSHユーティリティを介してこれにアクセスする場合は秘密鍵のペアが必要です。このチュートリアルでは、鍵のペアを作成する方法について説明します。

注意: 複数のサービス・インスタンスに1つのSSH公開鍵を関連付けることができます。ただし、サービス・インスタンスの作成後に、そのインスタンスにSSH公開鍵を関連付けることはできません。

シナリオ

Oracle Cloudサービス・インスタンスを作成する準備が整っており、これを作成するときに使用するSSH公開鍵を作成する必要があります。後で、VMにリモートでアクセスするために秘密鍵のペアが必要になります。

必要なもの

  • PuTTY

    PuTTYは、SSHを含む複数のネットワーク・プロトコルのオープンソース実装(無料)です。これは、WindowsプラットフォームおよびUNIXプラットフォームで使用できます。PuTTYには、ターミナル・エミュレータ、SSHキー・ジェネレータおよびネットワーク転送アプリケーションを含む複数のユーティリティが含まれます。このチュートリアルでは、Windows用のPuTTYキー・ジェネレータ(puttygen.exe)を使用します。

    PuTTYは多くのサイトから入手できますが、主なダウンロード・サイトであるhttp://www.putty.orgにアクセスできます。

  • UNIXのssh-keygenユーティリティの実装およびこれを実行するためのコマンドライン・シェル。UNIXおよびUNIX型のオペレーティング・システムの実装の多くにはssh-keygenがすでに用意されているため、これを自分でインストールする必要はありません。オペレーティング・システムのドキュメントをチェックしてssh-keygenがすでに用意されているかどうかを確認してください(または単純にコマンドラインでこれを入力してみてください)。

    ssh-keygenがまだインストールされていない場合は、複数のソースのいずれかから入手し、自分でインストールできます。一般的なオプションは、UNIX用のOpenSSHまたはWindows用のCygwinです。OpenSSHは、http://www.openssh.com/portable.htmlから入手できます。Cygwinは、https://cygwin.com/install.htmlから入手できます。

このチュートリアルを始める前に次の用意をする必要があります。

  • Windowsオペレーティングシステムを搭載したコンピュータにインストールされたPuTTY。

  • 次のいずれかの方法によってインストールされたssh-keygenユーティリティ

    • UNIXまたはUNIX型のオペレーティング・システムにすでにssh-keygenが用意されていることの確認。

    • UNIX用のOpenSSHまたはWindows用のCygwinなどのコマンドライン・インタフェースを使用したSSHのインストール。

  • コマンドラインで作業するためのUNIXに関するある程度の知識。

PuTTYキー・ジェネレータを使用したSSH鍵ペアの生成

PuTTYキー・ジェネレータを使用してSSH鍵ペアを生成するには、次の手順を実行します。

  1. コンピュータ上のPuTTYフォルダ(C:\Program Files (x86)\PuTTYなど)内でputtygen.exeを探します。puttygen.exeをダブルクリックして開きます。

    PuTTYキー・ジェネレータ
    このイメージの説明
  2. デフォルトの鍵タイプであるSSH-2 RSAのままにします。

    SSH-2は、SSHプロトコルの最新のバージョンです(SSH-1との互換性はありません)。RSAおよびDSAは、デジタル署名を計算するためのアルゴリズムです。

    PuTTYキー・ジェネレータのパラメータ
    このイメージの説明
  3. 「Number of bits in a generated key」2048ビットに設定します(まだこの値に設定されていない場合)。

    これにより、鍵のサイズ、つまり、セキュリティ・レベルが設定されます。SSH-2 RSAは最小限2048ビットに設定することをお薦めします。

    PuTTYキー・ジェネレータのパラメータ
    このイメージの説明
  4. 「Generate」をクリックします。

    「Generate」ボタン
    このイメージの説明
  5. 空白領域の周りでマウスを動かし、鍵のランダム性を生成します。

    注意: 下図の赤い点線は説明のみを目的としています。マウスを動かしてもジェネレータ・ペインには表示されません。

    鍵の生成 - ステータス
    このイメージの説明
  6. 生成した鍵が「Public key for pasting into OpenSSH authorized_keys file」の下に表示されます。

    生成した公開鍵
    このイメージの説明
  7. 鍵のコメントは、鍵を識別するために使用する鍵の名前です。生成した鍵のコメントを保持することも、独自のコメントを作成することもできます。

    「Key comment」フィールド
    このイメージの説明
  8. 鍵をパスワードで保護するには、「Key passphrase」に入力してから、「Confirm passphrase」に再入力します。保存した秘密鍵を再ロードすると、パスフレーズを入力するよう求められます(設定されている場合)。

    「Key passphrase」フィールド
    このイメージの説明

    パスフレーズは必須ではありませんが、秘密鍵を不正使用から保護するセキュリティ対策として、指定することをお薦めします。

    パスフレーズを忘れた場合、これを回復する方法はありません。

  9. 鍵のペアの秘密鍵を保存します。秘密鍵を将来どのように処理するのかに応じて、PuTTY PPK形式で保存された秘密鍵と、OpenSSH形式で保存された秘密鍵が必要になる可能性があります。このため、両方の方法で保存しましょう。

    1. 鍵をPuTTY PPK形式で保存するには、「Save private key」をクリックし、鍵のペアの秘密鍵を保存します。

      「Save private key」ボタン
      このイメージの説明

      これには任意の名前を付けることができますが、鍵のコメントに使用したものと同じ名前を使用することもできます。秘密鍵はPuTTYの秘密鍵(PPK)形式で保存されます。これは、PuTTYツールセットでのみ機能する独自の形式です。

      Save private key - ファイル名およびタイプ
      このイメージの説明

      Puttyを使用してSSHアクションを実行する場合は常にこの鍵を使用できます。

    2. 鍵をOpenSSH形式で保存するには、「Conversions」メニューを開き、「Export SSH key」を選択します。これは、別の形式で保存した上記の鍵と同じ鍵になります。

      OpenSSH形式での秘密鍵の保存
      このイメージの説明

      鍵には任意の名前を付けることができますが、鍵を追跡するには、前の手順でPPK形式で保存した鍵と同じ名前を付ける必要があります。また、拡張子を使用する(または拡張子を使用しない)こともできます。ここでは、.sshを使用して、これがどのような形式であるかを明確にしましょう。

      OpenSSH形式での秘密鍵の保存
      このイメージの説明

      OpenSSHをサポートするsshユーティリティを使用してSSHアクションを実行するためにOpenSSHを使用する場合(コマンド・シェルでLinuxを使用する場合など)は常に、この鍵を使用できます。

  10. ここで、作成した秘密鍵とペアにする公開鍵を作成する必要があります。ただし、「Save public key」ボタンをクリックすると、場合によってはOracle Cloudサービスでは機能しない公開鍵が作成されます。このため、このチュートリアルの目的として、「Save public key」ボタンを使用して公開鍵を保存する理由はありません。

    「Save public key」ボタンはクリックしない
    このイメージの説明

    かわりに、次の手順を実行します。

  11. PuTTYキー・ジェネレータで、「Public key for pasting into OpenSSH authorized_keys file」の下にあるすべての文字を選択します。

    狭いウィンドウに表示されている文字だけでなく、すべての文字を選択していることを確認してください。スクロール・バーが文字の横にあると、文字がすべて表示されません。

    貼付け用の公開鍵
    このイメージの説明
  12. 選択したテキスト上で右クリックし、メニューから「Copy」を選択します。

    貼付け用の公開鍵 - コピー
    このイメージの説明
  13. テキスト・エディタを開いて、コピー時と同様に文字を貼り付けます。テキスト・エディタの最初の文字から開始し、改行は一切挿入しないでください。

    テキスト・エディタに貼り付けられた公開鍵
    このイメージの説明
  14. 秘密鍵に使用したものと同じルート名を使用して、鍵をテキスト・ファイルとして保存します。.pub拡張子を決定します。これには任意の拡張子を付けることができますが、.pubは、これが公開鍵であることを示す便利な規則です。

    公開鍵の保存 - ファイル名およびタイプ
    このイメージの説明
  15. 公開鍵と秘密鍵の名前をメモし、これらが保存されている場所に注意します。Oracle Java Cloud ServiceやOracle Database Cloud - Database as a Serviceなどでサービス・インスタンスを作成する場合、公開鍵が必要になります。SSHを介してサービス・インスタンスの仮想マシンにアクセスしようとする場合、秘密鍵が必要になります。

コマンドラインでのSSH鍵のペアの作成

ssh-keygenを使用してコマンドラインでSSH鍵のペアを作成するには、次の手順を実行します。

  1. コマンドを入力するためのシェルを開きます。

  2. プロンプトで、次を入力します。

       ssh-keygen -t rsa -N "" -b "2048" -C "key comment" -f path/root_name

    これらは引数は、次のとおりです。

    -t rsa RSAアルゴリズムを使用します。
    -N "passphrase"

    鍵の使用を保護するための(パスワードのような)パスフレーズ。パスフレーズを設定しない場合、引用符の間に何も入力しないでください。

    注意: パスフレーズは必須ではありませんが、秘密鍵を不正使用から保護するセキュリティ対策として、指定することをお薦めします。

    -b "2048"

    2048ビットの鍵を生成します。2048がデフォルトであるため、2048が許容可能である場合、これを設定する必要はありません。

    注意: SSH-2 RSAは最小限2048ビットに設定することをお薦めします。

    -C "key comment" 鍵を識別する名前。
    -f path/root_name

    鍵のペアが保存される場所と、ファイルのルート名。たとえば、ルート名をid_rsaとして指定すると、秘密鍵の名前はid_rsaになり、公開鍵はid_rsa.pubになります。

    次に例を示します。

    コマンド・プロンプト - 鍵のペアの作成、パラメータの指定
    このイメージの説明
  3. または、名前とパスフレーズを求められたら、単純にssh-keygenと入力してから、レスポンスを入力します。デフォルトの2048ビットのRSA鍵で鍵が作成されます。

    コマンド・プロンプト、パラメータなしでの鍵のペアの作成
    このイメージの説明
  4. ファイルが作成されたことを確認するには、たとえば、ls path/root_name*と入力します。

    コマンド・プロンプト、liコマンドを使用したファイルの確認
    このイメージの説明
  5.  

詳細