OpenSSH-5.3p1 日本語マニュアルページ (2009/10/03)
認証用の鍵を生成、管理、および変換する
ssh-keygen
[-q ]
[-b ビット数 ]
-t 鍵の種類 [-N 新しいパスフレーズ ]
[-C コメント (訳注:SSH1のみ)]
[-f 出力先identityファイル ]
ssh-keygen
-p [-P 古いパスフレーズ ]
[-N 新しいパスフレーズ ]
[-f パスフレーズを変更するidentityファイル ]
ssh-keygen
-i [-f 変換するidentityファイル ]
ssh-keygen
-e [-f 変換するidentityファイル ]
ssh-keygen
-y [-f identityファイル ]
ssh-keygen
-c [-P パスフレーズ ]
[-C コメント ]
[-f コメントを変更するidentityファイル ]
ssh-keygen
-l [-f 指紋を表示するidentityファイル ]
ssh-keygen
-B [-f ダイジェストを表示するidentityファイル ]
ssh-keygen
-D reader
ssh-keygen
-F ホスト名 [-f known_hostsファイル ]
[-l ]
ssh-keygen
-H [-f known_hostsファイル ]
ssh-keygen
-R ホスト名 [-f known_hostsファイル ]
ssh-keygen
-U リーダ [-f 入力するidentityファイル ]
ssh-keygen
-r ホスト名 [-f 入力するidentityファイル ]
[-g ]
ssh-keygen
-G 出力ファイル [-v ]
[-b ビット数 ]
[-M 使用メモリ量 ]
[-S 開始位置 ]
ssh-keygen
-T 出力ファイル -f 入力ファイル [-v ]
[-a 試行回数 ]
[-W ジェネレータ ]
ssh-keygen
はssh (1)
で認証に使う鍵を生成、管理および変換します。ssh-keygen
は SSH プロトコル バージョン 1 で使われる RSA 鍵と、SSH プロトコル バージョン 2 で使われる RSA 鍵および DSA 鍵を生成できます。生成する鍵の種類は-t オプションによって指定できます。この指定がない場合、ssh-keygen
は SSH プロトコル バージョン 2 で使われる RSA 鍵を生成します。
ssh-keygen
は Diffie-Hellman 群交換 (DH-GEX) で使われる群を生成するのにも使用します。詳しくは、係数 (modulus) の生成の項を参照してください。
ふつう、RSA 認証 または DSA 認証で SSH を使いたいユーザは、一度このプログラムを実行すれば~/.ssh/identity、~/.ssh/id_dsaまたは~/.ssh/id_rsaに鍵 (identity ファイル) を作ることができます。また/etc/rcなどで見られるように、システム管理者がホスト鍵を生成するためにこのプログラムを使うこともできます。
通常、このプログラムは鍵を生成したあと、その鍵 (identity) をどのファイルに格納すればよいのか尋ねます。公開鍵は、秘密鍵を含む identityファイルの名前に".pub"をつけた名前のファイルとして格納されます。またこのプログラムはパスフレーズも尋ねてきます。任意の長さの文字列をパスフレーズとして使用することができます。パスフレーズをつけないときには、これは空でもかまいません(ホスト鍵のパスフレーズは必ず空でなければいけません)。パスフレーズはパスワードに似ていますが、パスワードとは違って単語の列や句読点、数値、空白など、好きな文字を含めることができます。よいパスフレーズとは、10〜30 文字程度の長さで、簡単な文章や容易に推測できるものではないことです (英語の散文では 1 文字あたりのエントロピーはわずか 1〜2 ビットしかなく、パスフレーズとしては非常に望ましくありません)。また大文字と小文字が混じっているものがよいでしょう。パスフレーズは-p オプションによって、後から変更することもできます。
失われてしまったパスフレーズをもとに戻すことはできません。もしパスフレーズを忘れてしまったり、なくしてしまったときには、新しい鍵を生成してその公開鍵を別のマシンにコピーしなくてはならないでしょう。
RSA1 鍵 (訳注: SSH1 で使う鍵) の場合、鍵のファイルにはコメントフィールドがあります。これはユーザが鍵を区別するためだけに便宜的に用意されているものです(訳注: SSH2 の鍵にはコメントはありません)。コメントには鍵の用途やその他有用な情報を書いておくことができます。最初に鍵が作られるとき、コメントは"user@host"の形に初期化されますが、-c オプションを使えば変更することができます。
鍵を生成したあと、それを使用可能にするためにどこに置けばよいかは後で説明しています。
オプションには次のようなものがあります:
-a 試行回数 -T コマンドを使うときに、DH-GEX 群の候補をスクリーニングするために何回の素数判定テストをおこなうかを指定します。-B -b ビット数 -C コメント -c -D reader -e -F ホスト名 known_hostsファイルの中から探し、見つかったものを一覧表示します。このオプションはハッシュされたホスト名あるいは IP アドレスを見つけるのに有用です。また、-H オプションと組み合わせてハッシュされた形式の公開鍵を表示するのにも使えます。-f ファイル名 -G 出力ファイル名 -T オプションを使って) 実際の使用前にスクリーニングする必要があります。-g -r コマンドを使って指紋のレコードを表示する際に、Generic DNS 形式を使用します。-H known_hostsファイルをハッシュし、その結果を標準出力に表示します。これはすべてのホスト名および IP アドレスをハッシュされた表現で置き換え、そのファイルを更新します。古いファイルはサフィックス .old がついた名前で保存されます。ssh
およびsshd
は、これらのハッシュ表現を普通に扱うことができますが、これによって、たとえファイルの内容が見えても識別可能な情報が明らかになることはありません。このオプションはすでに存在するハッシュされたホスト名を修正することはしないため、ハッシュされた表現とハッシュされていない表現が混在したファイルに対してこのオプションを適用しても安全です。-i ssh-keygen
は `RFC 4716 SSH Public Key File Format (RFC 4716 SSH 公開鍵ファイル形式)' の鍵も読み込めます。このオプションを使うと、いくつかの商用 SSH 実装で使われている鍵を OpenSSH で使用できます。-l ssh-keygen
はそれに該当する公開鍵ファイルを探し出してその指紋を表示します。-v オプションがつけられた場合、その鍵の指紋を表現したアスキーアートも表示します。-M メモリ -N 新しいパスフレーズ -P パスフレーズ -p -q ssh-keygen
。/etc/rcで新しい鍵をつくるときに使われます。-R ホスト名 known_hostsファイルから、指定されたホスト名 に属する鍵をすべて取り除きます。このオプションはハッシュされたホスト (上記の-H オプションを参照) をファイルから取り除くのに有用です。-r ホスト名 -S 開始点 -T 出力ファイル -G オプションで生成された) DH 群交換のための素数候補に対して、安全性の試験をおこないます。-t 鍵の種類 -U リーダ -v ssh-keygen
が進行中のデバッグメッセージを表示するようにします。これはモジュロ生成のデバッグ時に役立ちます。複数の-v オプションをつけると出力が増えます。最大は 3 個です。-W ジェネレータ -y ssh-keygen
は、Diffie-Hellman 群交換 (Diffie-Hellman Group Exchange, DH-GEX) のための群を生成するのにも使うことができます。この群を生成するには、2 つの段階をふむ必要があります:まず、素数の候補が生成されます。これは高速ですが、メモリを消費します。つぎにこれらの候補が適切かどうか検査されます (このときは CPU 時間を消費します)。
この素数の生成は-G オプションによっておこなえます。必要な素数の長さは、-b オプションで指定することができます。たとえば:
デフォルトでは、素数の探索は指定された長さの区間でランダムに選ばれた位置から開始されます。この開始位置は-S オプションによって変更することができます。
候補となる素数の集合が生成されたあとは、それらが適切かどうかを検査する必要があります。これは-T オプションを使っておこなえます。この場合、ssh-keygen
は標準入力 (あるいは-f オプションで指定したファイル) から候補を読み込みます。たとえば:
デフォルトでは、候補となる各素数は 100回の素数判定テストにかけられます。この回数は、-a オプションによって変更することができます。DH ジェネレータの値は探索中の素数のために自動的に選ばれます。特定のジェネレータが必要な場合は、-W オプションによって指定することができます。許されるジェネレータの値は 2、3 あるいは 5 です。
最終的にスクリーニングされた DH 群は/etc/moduliにインストールすることができます。注意: このファイルはある範囲のビット長の係数 (modulus) を格納しており、この数は 2つの通信端点間で同じものである必要があります。
~/.ssh/identityssh-keygen
によって自動的にアクセスされるわけではありませんが、秘密鍵ファイルのデフォルトの名前としてこれが提案されます。ssh (1)
はログイン要求があった際にこのファイルを読み込みます。~/.ssh/identity.pub~/.ssh/authorized_keysにこのファイルの内容を追加しておいてください。このファイルの内容を秘密にしておく必要はありません。~/.ssh/id_dsassh-keygen
によって自動的にアクセスされるわけではありませんが、秘密鍵ファイルのデフォルトの名前としてこれが提案されます。ssh (1)
はログイン要求があった際にこのファイルを読み込みます。~/.ssh/id_dsa.pub~/.ssh/authorized_keysにこのファイルの内容を追加しておいてください。このファイルの内容を秘密にしておく必要はありません。~/.ssh/id_rsassh-keygen
によって自動的にアクセスされるわけではありませんが、秘密鍵ファイルのデフォルトの名前としてこれが提案されます。ssh (1)
はログイン要求があった際にこのファイルを読み込みます。~/.ssh/id_rsa.pub~/.ssh/authorized_keysにこのファイルの内容を追加しておいてください。このファイルの内容を秘密にしておく必要はありません。/etc/moduli