Linuxインスタンスでのキー・ペアの管理

Oracle Linux、CentOSまたはUbuntuイメージを使用して起動されたインスタンスは、パスワードではなくSSHキー・ペアを使用してリモート・ユーザーを認証します(セキュリティ資格証明を参照)。キー・ペアは、秘密キーと公開キーで構成されます。秘密キーはコンピュータに保持し、公開キーはインスタンスの作成時に指定します。SSHを使用してインスタンスに接続するときに、SSHコマンドで秘密キーのパスを指定します。

必要に応じていくつものキー・ペアを使用することも、単純にするために、すべてのインスタンスまたは複数のインスタンスで1つのキー・ペアを使用することもできます。

OpenSSHを使用してインスタンスに接続する場合、インスタンスの作成時にOracle Cloud Infrastructureによって生成されたキー・ペアを使用できます。OpenSSHは、通常、UNIXベースのシステム(LinuxおよびOS Xを含む)、Windows 10およびWindows Server 2019にインストールされています。

独自のキー・ペアを作成するには、UNIXスタイル・システム(Linux、Solaris、BSD、OS Xを含む)のOpenSSHやWindowsのPuTTYキー・ジェネレータなどのサードパーティ・ツールを使用します。

注意

秘密キーにアクセスできるすべてのユーザーがインスタンスに接続できます。秘密キーはセキュアな場所に格納してください。

必要なSSH公開キーの形式

独自のキー・ペアを指定する場合は、OpenSSH形式を使用する必要があります。

公開キーの形式は次のとおりです:

<key_type> <public_key> <optional_comment>

たとえば、RSA公開キーは次のようになります:

ssh-rsa AAAAB3BzaC1yc2EAAAADAQABAAABAQD9BRwrUiLDki6P0+jZhwsjS2muM...

...yXDus/5DQ== rsa-key-20201202

プラットフォーム・イメージの場合、RSA、DSA、DSS、ECDSAおよびEd25519のSSHキー・タイプがサポートされます。独自のイメージを導入する場合は、サポートされているSSHキー・タイプの管理の責任を負います。

RSA、DSSおよびDSAキーの場合は、最小2048ビットをお薦めします。ECDSAキーには、最小256ビットをお薦めします。

前提条件

  • Unixスタイルのシステムを使用している場合は、ssh-keygenユーティリティがすでにインストールされている可能性があります。インストールされているかどうかを確認するには、コマンドラインでssh-keygenと入力します。インストールされていない場合は、http://www.openssh.com/portable.htmlからOpenSSH for UNIXをダウンロードしてインストールできます。
  • Windowsオペレーティング・システムを使用している場合は、PuTTYおよびPuTTYキー・ジェネレータが必要です。PuTTYおよびPuTTYgenをhttp://www.putty.orgからダウンロードし、インストールします。

コマンドラインでのSSHキー・ペアの作成

  1. コマンドを入力するためのシェルまたはターミナルを開きます。
  2. プロンプトで、ssh-keygenと入力し、要求されたらキーの名前を指定します。オプションで、パスフレーズを含めます。

    デフォルトのキー値(2048ビットのRSAキー)を使用してキーが作成されます。

または、次のように完全なssh-keygenコマンドを入力することもできます:

ssh-keygen -t rsa -N "" -b 2048 -C "<key_name>" -f <path/root_name>

次の表に、コマンド引数を示します:

引数 説明
-t rsa RSAアルゴリズムを使用します。
-N "<passphrase>"

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

パスフレーズは必須ではありません。これをセキュリティ対策として指定して、権限のない使用から秘密キーを保護できます。パスフレーズを指定する場合、インスタンスに接続するときにパスフレーズを指定する必要があります。これにより、通常、インスタンスへの接続の自動化が困難になります。

-b 2048

2048ビット・キーを生成します。2048はデフォルトであるため、この値で問題なければ設定する必要はありません。

SSH-2 RSAには最低でも2048ビットをお薦めします。

-C "<key_name>" キーを識別する名前。
-f <path/root_name> キー・ペアが保存される場所と、ファイルのルート名。

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

  1. コンピュータの「PuTTY」フォルダ(C:\Program Files (x86)\PuTTYなど)で、puttygen.exeを検索します。puttygen.exeをダブルクリックして開きます。
  2. SSH-2 RSAのキー・タイプと2048ビットのキー・サイズを指定します:

    • 「Key」メニューで、デフォルト値の「SSH-2 RSA key」が選択されていることを確認します。
    • 「Type of key to generate」で、デフォルト・キー・タイプの「RSA」を受け入れます。
    • 「Number of bits in a generated key」がまだ設定されていない場合、2048に設定します。
  3. 「Generate」をクリックします。
  4. PuTTYウィンドウの空白領域でマウスを動かすと、キーのランダム・データが生成されます。

    キーが生成されると、「Public key for pasting into OpenSSH authorized_keys file」に表示されます。

  5. 日付とタイムスタンプを含む「Key comment」が自動的に生成されます。デフォルトのコメントのままにすることも、よりわかりやすい独自のコメントで置き換えることもできます。
  6. 「Key passphrase」フィールドは空白のままにします。
  7. 「Save private key」をクリックし、パスフレーズを使用しないキーの保存に関するプロンプトで、「Yes」をクリックします。

    キー・ペアは、PuTTYツール・セットでのみ動作する製品固有の形式であるPuTTY Private Key (PPK)形式で保存されます。

    キーには任意の名前を付けることができますが、ppkファイル拡張子を使用してください。たとえば、mykey.ppkです。

  8. 「Public key for pasting into OpenSSH authorized_keys file」に表示されているすべての生成キーを選択し、[Ctrl] + [C]を使用してコピーし、テキスト・ファイルに貼り付けてから、秘密キーと同じ場所にそのファイルを保存します。

    (「Save public key」ではキーがOpenSSH形式で保存されないため、使用しないでください。)

    キーには任意の名前を付けることができますが、一貫性を維持するため、秘密キーと同じ名前を付け、pubファイル拡張子を使用してください。たとえば、mykey.pubです。

  9. 公開キーおよび秘密キー・ファイルの名前と場所を書き留めます。インスタンスの起動時に、公開キーが必要になります。SSH経由でインスタンスにアクセスするには、秘密キーが必要になります。

キー・ペアが作成されました。これで、インスタンスの作成の説明に従って、インスタンスを起動できるようになりました。