開始する前に
目的
このチュートリアルでは、次の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鍵ペアを生成するには、次の手順を実行します。
-
コンピュータ上のPuTTYフォルダ(
C:\Program Files (x86)\PuTTY
など)内でputtygen.exe
を探します。puttygen.exe
をダブルクリックして開きます。 -
デフォルトの鍵タイプであるSSH-2 RSAのままにします。
SSH-2は、SSHプロトコルの最新のバージョンです(SSH-1との互換性はありません)。RSAおよびDSAは、デジタル署名を計算するためのアルゴリズムです。
-
「Number of bits in a generated key」を
2048
ビットに設定します(まだこの値に設定されていない場合)。これにより、鍵のサイズ、つまり、セキュリティ・レベルが設定されます。SSH-2 RSAは最小限2048ビットに設定することをお薦めします。
-
「Generate」をクリックします。
-
空白領域の周りでマウスを動かし、鍵のランダム性を生成します。
注意: 下図の赤い点線は説明のみを目的としています。マウスを動かしてもジェネレータ・ペインには表示されません。
-
生成した鍵が「Public key for pasting into OpenSSH authorized_keys file」の下に表示されます。
-
鍵のコメントは、鍵を識別するために使用する鍵の名前です。生成した鍵のコメントを保持することも、独自のコメントを作成することもできます。
-
鍵をパスワードで保護するには、「Key passphrase」に入力してから、「Confirm passphrase」に再入力します。保存した秘密鍵を再ロードすると、パスフレーズを入力するよう求められます(設定されている場合)。
パスフレーズは必須ではありませんが、秘密鍵を不正使用から保護するセキュリティ対策として、指定することをお薦めします。
パスフレーズを忘れた場合、これを回復する方法はありません。
-
鍵のペアの秘密鍵を保存します。秘密鍵を将来どのように処理するのかに応じて、PuTTY PPK形式で保存された秘密鍵と、OpenSSH形式で保存された秘密鍵が必要になる可能性があります。このため、両方の方法で保存しましょう。
-
鍵をPuTTY PPK形式で保存するには、「Save private key」をクリックし、鍵のペアの秘密鍵を保存します。
これには任意の名前を付けることができますが、鍵のコメントに使用したものと同じ名前を使用することもできます。秘密鍵はPuTTYの秘密鍵(PPK)形式で保存されます。これは、PuTTYツールセットでのみ機能する独自の形式です。
Puttyを使用してSSHアクションを実行する場合は常にこの鍵を使用できます。
-
鍵をOpenSSH形式で保存するには、「Conversions」メニューを開き、「Export SSH key」を選択します。これは、別の形式で保存した上記の鍵と同じ鍵になります。
鍵には任意の名前を付けることができますが、鍵を追跡するには、前の手順でPPK形式で保存した鍵と同じ名前を付ける必要があります。また、拡張子を使用する(または拡張子を使用しない)こともできます。ここでは、
.ssh
を使用して、これがどのような形式であるかを明確にしましょう。OpenSSHをサポートするsshユーティリティを使用してSSHアクションを実行するためにOpenSSHを使用する場合(コマンド・シェルでLinuxを使用する場合など)は常に、この鍵を使用できます。
-
-
ここで、作成した秘密鍵とペアにする公開鍵を作成する必要があります。ただし、「Save public key」ボタンをクリックすると、場合によってはOracle Cloudサービスでは機能しない公開鍵が作成されます。このため、このチュートリアルの目的として、「Save public key」ボタンを使用して公開鍵を保存する理由はありません。
かわりに、次の手順を実行します。
-
PuTTYキー・ジェネレータで、「Public key for pasting into OpenSSH authorized_keys file」の下にあるすべての文字を選択します。
狭いウィンドウに表示されている文字だけでなく、すべての文字を選択していることを確認してください。スクロール・バーが文字の横にあると、文字がすべて表示されません。
-
選択したテキスト上で右クリックし、メニューから「Copy」を選択します。
-
テキスト・エディタを開いて、コピー時と同様に文字を貼り付けます。テキスト・エディタの最初の文字から開始し、改行は一切挿入しないでください。
-
秘密鍵に使用したものと同じルート名を使用して、鍵をテキスト・ファイルとして保存します。
.pub
拡張子を決定します。これには任意の拡張子を付けることができますが、.pub
は、これが公開鍵であることを示す便利な規則です。 -
公開鍵と秘密鍵の名前をメモし、これらが保存されている場所に注意します。Oracle Java Cloud ServiceやOracle Database Cloud - Database as a Serviceなどでサービス・インスタンスを作成する場合、公開鍵が必要になります。SSHを介してサービス・インスタンスの仮想マシンにアクセスしようとする場合、秘密鍵が必要になります。
コマンドラインでのSSH鍵のペアの作成
ssh-keygen
を使用してコマンドラインでSSH鍵のペアを作成するには、次の手順を実行します。
-
コマンドを入力するためのシェルを開きます。
-
プロンプトで、次を入力します。
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
になります。次に例を示します。
-
または、名前とパスフレーズを求められたら、単純に
ssh-keygen
と入力してから、レスポンスを入力します。デフォルトの2048ビットのRSA鍵で鍵が作成されます。 -
ファイルが作成されたことを確認するには、たとえば、
ls path/root_name*
と入力します。
詳細
- SSHを使用してインスタンスへのセキュア・アクセスを有効化
- cloud.oracle.com
- Oracleヘルプ・センターのOracle Cloudドキュメント