SSH-KEYGEN(1) FreeBSD 一般コマンドマニュアル SSH-KEYGEN(1)
名称
ssh-keygen − 認証用の鍵を生成、管理、および変換する |
書式
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 リーダ |
ssh-keygen −U リーダ [−f 入力する identity ファイル] |
ssh-keygen −r hostname [−f input_keyfile] [−g] |
ssh-keygen −G output_file [−v] [−b bits] [−M memory] [−S start_point] |
ssh-keygen −T output_file −f input_file [−v] [−a num_trials] [−W generator] |
解説 |
ssh-keygen は ssh(1) で認証に使う鍵を生成、管理および変換します。 ssh-keygen は SSH プロトコル バージョン 1 で使われる RSA 鍵と、 SSH プロ トコル バージョン 2 で使われる RSA 鍵および DSA 鍵を生成できます。生成す る鍵の種類は −t オプションによって指定できます。 ssh-keygen は Diffle-Hellman の群交換 (DH-GEX) に使う群の生成にも使用され ます。詳細は 係数 (moduli) 生成のセクションを参照してください。 ふつう、RSA 認証 または DSA 認証で SSH を使いたいユーザは、一度このプログ ラムを実行すれば $HOME/.ssh/identity 、 $HOME/.ssh/id_dsa または $HOME/.ssh/id_rsa に鍵 (identity ファイル) を作ることができます。また /etc/rc などで見られるように、システム管理者がホスト鍵を生成するためにこ のプログラムを使うこともできます。 通常、このプログラムは鍵を生成したあと、その鍵 (identity) をどのファイル に格納すればよいのか尋ねます。公開鍵は、秘密鍵を含む identity ファイルの 名前に ‘‘.pub’’ をつけた名前のファイルとして格納されます。またこのプログ ラムはパスフレーズも尋ねてきます。任意の長さの文字列をパスフレーズとして 使用することができます。パスフレーズをつけないときには、これは空でもかま いません (ホスト鍵のパスフレーズは必ず空でなければいけません)。パスフレー ズはパスワードに似ていますが、パスワードとは違って単語の列や句読点、数 値、空白など、好きな文字を含めることができます。よいパスフレーズとは、 10 〜30 文字程度の長さで、簡単な文章や容易に推測できるものではないことです ( 英語の散文では 1 文字あたりのエントロピはわずか 1〜2 ビットしかなく、パス フレーズとしては非常に望ましくありません)。また大文字と小文字が混じってい るものがよいでしょう。パスフレーズは −p オプションによって、後から変更す ることもできます。 失われてしまったパスフレーズをもとに戻すことはできません。もしパスフレー ズを忘れてしまったり、なくしてしまったときには、新しい鍵を生成してその公 開鍵を別のマシンにコピーしなくてはならないでしょう。 RSA1 鍵 (訳注: SSH1 で使う鍵) の場合、鍵のファイルにはコメントフィールド があります。これはユーザが鍵を区別するためだけに便宜的に用意されているも のです (訳注: SSH2 の鍵にはコメントはありません)。コメントには鍵の用途や その他有用な情報を書いておくことができます。最初に鍵が作られるとき、コメ ントは ‘‘user@host’’ の形に初期化されますが、 −c オプションを使えば変更す ることができます。 鍵を生成したあと、それを使用可能にするためにどこに置けばよいかは後で説明 しています。 オプションには次のようなものがあります: |
−a trails
−T コマンドを使用して DH-GEX の候補をスクリーニングする時に、素数 判定テストの実行回数を指定します。 −b ビット数 −c −e −g −f ファイル名 −i −l −p −q −y −t 鍵の種類 −B −C コメント −D リーダ −G output_file −M menory −N 新しいパスフレーズ −P パスフレーズ −S start −T output_file −W generator −U リーダ −v −r hostname 係数 (moduli) 生成 |
ssh-keygen は、Diffie-Hellman 群交換 (DH-GEX) プロトコルに使用される群の 生成にも使用されます。これらの群の生成には、2 ステップのプロセスを踏みま す。まず高速ですがメモリを消費するプロセスによって素数候補を生成します。 次にこれらの素数候補の適合性の検査 (CPU を消費するプロセス) を行います。 素数は −G オプションを用いて生成されます。必要な素数の長さは −b オプショ ンで指定します。使用例: |
ssh-keygen -G moduli-2048.candidates -b 2048 |
デフォルトでは、素数の探索は、指定された長さの範囲内のランダムな位置から 開始されます。開始位置は −S オプションによって別の開始位置 (16 進) へ変更 することができます。 候補となる集合が生成できたら、適合性の検査を行う必要があります。これは −T オプションで実行されます。この時、 ssh-keygen は候補を標準入力 (または −f オプションで指定したファイル) から読み込みます。使用例: |
ssh-keygen -T moduli-2048 -f moduli-2048.candidates |
デフォルトでは、各候補は 100 回の素数判定検査にかけられます。この回数は −a オプションによって変更できます。 DH ジェネレータの値は、探索中の素数に 応じて自動的に選択されます。特定のジェネレータが必要な場合は、 −W オプ ションで指定できます。有効なジェネレータの値は 2, 3, 5 です。 スクリーニングされた DH 群は、 /etc/moduli にインストールできます。この ファイルがある範囲のビット長の係数 (moduli) を格納しており、通信の両端で 共通の係数を共有していることが重要です。 |
関連ファイル
$HOME/.ssh/identity
そのユーザの、プロトコル バージョン 1 における RSA 認証用秘密鍵を 格納します。このファイルはそのユーザ以外の誰にも見せてはいけませ ん。この鍵を生成するときにパスフレーズを指定することもできます。 パスフレーズは、3DES を使ってファイル中の秘密鍵の部分を暗号化する のに用いられます。このファイルは ssh-keygen によって自動的にアク セスされるわけではありませんが、秘密鍵ファイルのデフォルトの名前 としてこれが提案されます。 ssh(1) はログイン要求があった際にこの ファイルを読み込みます。 $HOME/.ssh/identity.pub $HOME/.ssh/id_dsa $HOME/.ssh/id_dsa.pub $HOME/.ssh/id_rsa $HOME/.ssh/id_rsa.pub 関連項目 |
ssh(1), ssh-add(1), ssh-agent(1), moduli(5), sshd(8) |
J. Galbraith and R. Thayer, SECSH Public Key File Format, draft-ietf-secsh-publickeyfile-01.txt, March 2001, work in progressmaterial.
作者
OpenSSH は Tatu Ylonen による、フリーなオリジナル版 ssh 1.2.12 リリースか ら派生したものです。 Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt および Dug Song が多くのバグをとり除き、新しい機能 をふたたび追加して OpenSSH をつくりました。 SSH プロトコル バージョン 1.5 および 2.0 のサポートは Markus Friedl の貢献によるものです。 |
日本語訳
新山 祐介 (yusuke at cs . nyu . edu) 2003/4/17 (for 3.6.1p1) 当マニュアルページは氏のご好意により FreeBSD 向けに修正を加えて FreeBSD 日本語マニュアルに収録させていただいています。翻訳についてのご意見、ご指 摘がありましたら FreeBSD jpman プロジェクト 〈man-jp@jp.FreeBSD.org〉 また は新山氏 (yusuke at cs . nyu . edu) までお送りください。 FreeBSD 10.0 September 25, 1999 FreeBSD 10.0 |