Show page source of ui_puttygen #55019

= PuTTYgenで公開鍵/秘密鍵を作成する

PuTTYgenはSSH/SCP等で利用される[public_key 公開鍵/秘密鍵]を作成するツールです。PuTTYgenではRSAおよびDSA鍵を作成できます。

PuTTYgenはWinSCPのインストーラに同梱されており、通常WinSCPとともにProgram Files以下の「WinSCP」-「PuTTY」以下にインストールされます。


== PuTTYgenの実行
PuTTYgenはWindosのスタートメニューから「WinSCP」-「鍵関連ツール」-「PuTTYgen」を選択して実行できます。

[[Embed(pgen1.png)]]

PuTTYgenを実行すると、「PuTTY Key Generator」というウィンドウが表示されます。ここで「Generate」をクリックすると新しい公開鍵/秘密鍵の作成が、「Load」をクリックすると既存の秘密鍵を読み込むことができます。

[[Embed(pgen3.png)]]


== 新しい鍵の作成
公開鍵/秘密鍵を作成するおおまかな手順は次の通りです。

 1. 鍵の形式と強度を選択する
 1. 「Generate」をクリックして鍵を作成する
 1. 必要に応じてコメントやパスフレーズを入力する
 1. 「Save Public key」および「Save private key」をクリックして作成した鍵を保存する


=== 鍵の形式を選択する
PuTTYgenでは、「Type of key to generate」欄で作成する鍵の形式を選択できます。

[[Embed(pgen3_1.png)]]

 * SSH-1プロトコル向けのRSA鍵「SSH-1(RSA)」
 * SSH-2プロトコル向けのRSA鍵「SSH-2 RSA」
 * SSH-2プロトコル向けのDSA鍵「SSH-2 DSA」

どの形式の鍵を使用するかは、接続したサーバーの管理者もしくはサポート窓口等に確認してください。なお、現在ではSSH-2プロトコル向けのRSAもしくはDSA鍵が一般的に使われています。また、WinSCP開発者はセキュリティの観点からRSA形式を推奨しているとのことなので、特に制限がない場合は「SSH-2 RSA」を選択すると良いでしょう。

なお、DSA形式の鍵は内部的な脆弱性があり、「偽の署名」を簡単に作成できてしまいます。そのためDSA形式の鍵を使用する場合は、もし攻撃を受けた場合に問題を最小限に抑えられるよう、サーバーごとに異なる鍵を利用することをおすすめします。


=== 鍵のサイズ(強度)を選択する
「Number of bits in a generated key」で作成する鍵のビット数(強度)を選択できます。通常はデフォルトの「1024」のままで問題ないでしょう。

[[Embed(pgen3_2.png)]]


=== 鍵を生成する
鍵の形式を選択して「Generate」をクリックすると、鍵の生成が行われます。プログレスバーが表示されるので、ここで適当にマウスを動かすことで必要となるランダムな数が生成されます。プログレスバーが100%になるまでマウスを適当に動かしてください。プログレスバーが100%になると鍵が生成され、その結果が表示されます。

[[Embed(pgen3_3.png)]]
[[Embed(pgen4.png)]]


=== 鍵の指紋
鍵が生成されると、「Key fingerprint」欄に「鍵の指紋」が表示されます。これは公開鍵から計算できる値なので、秘密にしておく必要はありません。公開鍵に比べて短い値となるので、提示された鍵が正しいかどうかを確認する際によく利用されます。

[[Embed(pgen5_1.png)]]



=== 鍵にコメントを入力する
「Key comment」欄には任意のコメントを入力できます。これは鍵を区別するためなどに利用でき、パスフレーズの入力時などに表示されます。一般的には「rsa-key-20100331」など、鍵の形式や作成日を組み合わせたもの、もしくは「foobar@example.com」など、鍵の作成者と作成コンピュータ名を組み合わせたものが使われることが多いようです。

[[Embed(pgen5_2.png)]]


=== パスフレーズを設定する
「Key passphrease」欄では、パスフレーズを入力します。パスフレーズは鍵を使用する際に入力が求められるパスワードのようなもので、暗号化されて秘密鍵内に記録されます。パスフレーズを設定しないこともできますが、セキュリティの観点からできるだけ適切なものを設定しておきましょう。「Key passphrase」にパスフレーズを入力したら、確認のため同じものを「Confirm passphrase」にも入力します。

[[Embed(pgen5_3.png)]]


なお、パスフレーズを忘れてしまった場合、対処する方法はありませんので注意してください。


=== 秘密鍵をディスクに保存する
鍵を作成し、コメントやパスフレーズを入力したら、「Save private key」をクリックして秘密鍵を保存します。なお、秘密鍵の拡張子は「.PPK」になります。openssh等の秘密鍵とは互換性がないので注意してください。

[[Embed(pgen5_5.png)]]


=== 公開鍵をファイルに保存する
 「Save public key」をクリックすると、公開鍵を保存できます。保存された公開鍵は標準規格であるRFC 4716に準拠したものなので、さまざまなSSHサーバーで共通で利用できます。

[[Embed(pgen5_4.png)]]


== 以前に作成した秘密鍵の読み込み/秘密鍵から公開鍵を作成
PuTTYgenでは以前に作成した秘密鍵を読み込み、コメントやパスフレーズを変更したり、秘密鍵から公開鍵を再生成することができます。

秘密鍵を読み込むには「Load」をクリックし、読み込む秘密鍵ファイルを選択します。なお、秘密鍵を読み込む際にはパスフレーズの入力が必要です。

[[Embed(pgen6_1.png)]]


== 秘密鍵の変換
WinSCPで利用する秘密鍵は、OpenSSHやssh.comといったほかのSSHクライアントで利用される秘密鍵との互換性がありません。そのような秘密鍵をWinSCPで利用したい場合、PuTTYgenを利用することでWinSCPで利用できるPuTTY形式の秘密鍵に変換することができます。

「Convertions」メニューから「Import key」を選択して、変換したい秘密鍵を選択し、必要に応じてパスフレーズを入力すると秘密鍵が読み込まれます。あとは「Save private key」をクリックすればPuTTY形式で秘密鍵を保存できます。

[[Embed(pgen6_2.png)]]


また、PuTTY形式の鍵を作成/読み込んだ後、「Convertions」メニューの「Export OpenSSH key」もしくは「Export ssh.com key」で鍵をOpenSSHもしくはssh.com形式で保存できます(ただし、SSH-1形式の鍵についてはエクスポートできません)。