1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
|
.\" %OpenBSD: ssh-keygen.1,v 1.61 2003/12/22 09:16:58 djm Exp %
.\"
.\" -*- nroff -*-
.\"
.\" Author: Tatu Ylonen <ylo@cs.hut.fi>
.\" Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
.\" All rights reserved
.\"
.\" As far as I am concerned, the code I have written for this software
.\" can be used freely for any purpose. Any derived versions of this
.\" software must be clearly marked as such, and if the derived work is
.\" incompatible with the protocol description in the RFC file, it must be
.\" called by a name other than "ssh" or "Secure Shell".
.\"
.\"
.\" Copyright (c) 1999,2000 Markus Friedl. All rights reserved.
.\" Copyright (c) 1999 Aaron Campbell. All rights reserved.
.\" Copyright (c) 1999 Theo de Raadt. All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.\" Japanese translation: $Id: ssh-keygen.1,v 1.13 2004-10-28 04:45:06 metal Exp $
.\" by Yusuke Shinyama <yusuke at cs . nyu . edu>
.\" %FreeBSD%
.\" $FreeBSD$
.\"
.Dd September 25, 1999
.Dt SSH-KEYGEN 1
.Os
.Sh 名称
.Nm ssh-keygen
.Nd 認証用の鍵を生成、管理、および変換する
.Sh 書式
.Nm ssh-keygen
.Bk -words
.Op Fl q
.Op Fl b Ar ビット数
.Fl t Ar 鍵の種類
.Op Fl N Ar 新しいパスフレーズ
.Op Fl C Ar コメント (訳注: SSH1 のみ)
.Op Fl f Ar 出力先 identity ファイル
.Ek
.Nm ssh-keygen
.Fl p
.Op Fl P Ar 古いパスフレーズ
.Op Fl N Ar 新しいパスフレーズ
.Op Fl f Ar パスフレーズを変更する identity ファイル
.Nm ssh-keygen
.Fl i
.Op Fl f Ar 変換する identity ファイル
.Nm ssh-keygen
.Fl e
.Op Fl f Ar 変換する identity ファイル
.Nm ssh-keygen
.Fl y
.Op Fl f Ar identity ファイル
.Nm ssh-keygen
.Fl c
.Op Fl P Ar パスフレーズ
.Op Fl C Ar コメント
.Op Fl f Ar コメントを変更する identity ファイル
.Nm ssh-keygen
.Fl l
.Op Fl f Ar 指紋を表示する identity ファイル
.Nm ssh-keygen
.Fl B
.Op Fl f Ar ダイジェストを表示する identity ファイル
.Nm ssh-keygen
.Fl D Ar リーダ
.Nm ssh-keygen
.Fl U Ar リーダ
.Op Fl f Ar 入力する identity ファイル
.Nm ssh-keygen
.Fl r Ar hostname
.Op Fl f Ar input_keyfile
.Op Fl g
.Nm ssh-keygen
.Fl G Ar output_file
.Op Fl v
.Op Fl b Ar bits
.Op Fl M Ar memory
.Op Fl S Ar start_point
.Nm ssh-keygen
.Fl T Ar output_file
.Fl f Ar input_file
.Op Fl v
.Op Fl a Ar num_trials
.Op Fl W Ar generator
.Sh 解説
.Nm
は
.Xr ssh 1
で認証に使う鍵を生成、管理および変換します。
.Nm
は SSH プロトコル バージョン 1 で使われる RSA 鍵と、
SSH プロトコル バージョン 2 で使われる RSA 鍵および DSA 鍵を生成できます。
生成する鍵の種類は
.Fl t
オプションによって指定できます。
.Pp
.Nm
は Diffle-Hellman の群交換 (DH-GEX) に使う群の生成にも使用されます。
詳細は
.Sx 係数 (moduli) 生成
のセクションを参照してください。
.Pp
ふつう、RSA 認証 または DSA 認証で SSH を使いたいユーザは、
一度このプログラムを実行すれば
.Pa $HOME/.ssh/identity
、
.Pa $HOME/.ssh/id_dsa
または
.Pa $HOME/.ssh/id_rsa
に鍵 (identity ファイル) を作ることができます。また
.Pa /etc/rc
などで見られるように、
システム管理者がホスト鍵を生成するためにこのプログラムを
使うこともできます。
.Pp
通常、このプログラムは鍵を生成したあと、その鍵 (identity) をどのファイルに
格納すればよいのか尋ねます。公開鍵は、秘密鍵を含む identity
ファイルの名前に
.Dq .pub
をつけた名前のファイルとして格納されます。またこのプログラムは
パスフレーズも尋ねてきます。
任意の長さの文字列をパスフレーズとして使用することができます。
パスフレーズをつけないときには、これは空でもかまいません
(ホスト鍵のパスフレーズは必ず空でなければいけません)。
パスフレーズはパスワードに似ていますが、パスワードとは違って
単語の列や句読点、数値、空白など、好きな文字を含めることができます。
よいパスフレーズとは、 10〜30 文字程度の長さで、簡単な文章や容易に
推測できるものではないことです (英語の散文では 1 文字あたりのエントロピは
わずか 1〜2 ビットしかなく、パスフレーズとしては非常に望ましくありません)。
また大文字と小文字が混じっているものがよいでしょう。
パスフレーズは
.Fl p
オプションによって、後から変更することもできます。
.Pp
失われてしまったパスフレーズをもとに戻すことはできません。もし
パスフレーズを忘れてしまったり、なくしてしまったときには、
新しい鍵を生成してその公開鍵を別のマシンにコピーしなくてはならないでしょう。
.Pp
RSA1 鍵 (訳注: SSH1 で使う鍵) の場合、
鍵のファイルにはコメントフィールドがあります。これはユーザが
鍵を区別するためだけに便宜的に用意されているものです
(訳注: SSH2 の鍵にはコメントはありません)。コメントには
鍵の用途やその他有用な情報を書いておくことができます。
最初に鍵が作られるとき、コメントは
.Dq user@host
の形に初期化されますが、
.Fl c
オプションを使えば変更することができます。
.Pp
鍵を生成したあと、それを使用可能にするために
どこに置けばよいかは後で説明しています。
.Pp
オプションには次のようなものがあります:
.Bl -tag -width Ds
.It Fl a Ar trails
.Fl T
コマンドを使用して DH-GEX の候補をスクリーニングする時に、
素数判定テストの実行回数を指定します。
.It Fl b Ar ビット数
生成する鍵のビット数を指定します。最小値は 512 ビットです。
ふつうは 1024 ビットの鍵で充分だと考えられており、
デフォルトも 1024 ビットになっています。
.It Fl c
秘密鍵ファイルおよび公開鍵ファイルのコメントを変更します。
このオプションは プロトコル バージョン 1 における RSA 鍵に対してのみ有効です。
まず秘密鍵の入っているファイル名を訊かれ、
パスフレーズがあればそれを入力したあとに新しいコメントを入力します。
.It Fl e
このオプションは OpenSSH 形式の秘密鍵あるいは公開鍵ファイルを
読み、
.Sq SECSH Public Key File Format (SECSH 公開鍵ファイル形式)
の鍵を標準出力に表示します。
このオプションを使うと、OpenSSH の鍵を
いくつかの商用 SSH 実装で使われている形式の鍵に変換できます。
.It Fl g
通常の DNS リソースレコードのフォーマットを使用します。
.It Fl f Ar ファイル名
鍵を入れるファイルのファイル名を指定します。
.It Fl i
このオプションは SSH2-互換の形式である、暗号化されていない
秘密鍵 (あるいは公開鍵) ファイルを読み、それを
OpenSSH 互換の秘密鍵 (あるいは公開鍵) に変換して
標準出力に表示します。
.Nm
は
.Sq SECSH Public Key File Format (SECSH 公開鍵ファイル形式)
の鍵も読み込めます。
このオプションを使うと、いくつかの商用 SSH 実装で使われている
鍵を OpenSSH で使用できます。
.It Fl l
指定された秘密鍵ファイルあるいは公開鍵ファイルの
指紋 (fingerprint) を表示します。プロトコル バージョン 1 における
RSA 鍵 (RSA1) もサポートされています。
プロトコル バージョン 2 の RSA および DSA 鍵の場合、
.Nm
はそれに該当する公開鍵ファイルを探し出してその指紋を表示します。
.It Fl p
新しく秘密鍵をつくるのではなく、すでにある秘密鍵ファイルのパス
フレーズを変更します。まず秘密鍵の入っているファイルを訊かれ、
古いパスフレーズを入力したあと、新しいパスワードを 2 回入力します。
.It Fl q
静かな
.Nm ssh-keygen
。
.Pa /etc/rc
で新しい鍵をつくるときに使われます。
.It Fl y
このオプションは OpenSSH 形式の秘密鍵ファイルを読み、
OpenSSH 形式の公開鍵を標準出力に表示します。
.It Fl t Ar 鍵の種類
生成する鍵の種類を指定します。
とりうる値として、プロトコル バージョン 1 で使う
.Dq rsa1
、およびプロトコル バージョン 2 で使う
.Dq rsa
または
.Dq dsa
があります。
.It Fl B
指定された秘密鍵あるいは公開鍵の bubblebabble ダイジェストを
表示します。
.It Fl C Ar コメント
新しいコメントを指定します。
.It Fl D Ar リーダ
スマートカード
.Ar リーダ
に格納されている RSA 公開鍵をダウンロードします。
.It Fl G Ar output_file
DH-GEX 用の素数候補を生成します。
これらの素数は使用する前に安全のために (
.Fl T
オプションを使用して) スクリーニングする必要があります。
.It Fl M Ar menory
DH-GEX 用の係数 (moduli) となる素数候補を生成する際に使用する
メモリのサイズを (メガバイト単位で) 指定します。
.It Fl N Ar 新しいパスフレーズ
新しいパスフレーズを指定します。
.It Fl P Ar パスフレーズ
(古い) パスフレーズを指定します。
.It Fl S Ar start
DH-GEX 用の係数 (moduli) となる素数候補を生成する時の開始位置を
(16 進数) で指定します。
.It Fl T Ar output_file
(
.Fl G
オプションで生成された) DH-GEX 用の素数候補が安全か検査します。
.It Fl W Ar generator
DH-GEX 群用の係数 (moduli) となる素数候補を検査するときに
使いたいジェネレータを指定します。
.It Fl U Ar リーダ
すでに存在している RSA 公開鍵をスマートカード
.Ar リーダ
にアップロードします。
.It Fl v
冗長モード。
.Nm
に進行状況のデバッグメッセージを表示させます。
これは係数 (moduli) 生成のデバッグにたいへん役に立ちます。
複数の (最大 3)
.Fl v
オプションが指定された場合、より詳しくメッセージを出します。
.It Fl r Ar hostname
.Ar hostname
で指定された DNS リソースレコードを表示します。
.Sh 係数 (moduli) 生成
.Nm
は、Diffie-Hellman 群交換 (DH-GEX) プロトコルに使用される群の
生成にも使用されます。
これらの群の生成には、2 ステップのプロセスを踏みます。
まず高速ですがメモリを消費するプロセスによって素数候補を生成します。
次にこれらの素数候補の適合性の検査 (CPU を消費するプロセス) を行います。
.Pp
素数は
.Fl G
オプションを用いて生成されます。
必要な素数の長さは
.Fl b
オプションで指定します。
使用例:
.Pp
.Dl ssh-keygen -G moduli-2048.candidates -b 2048
.Pp
デフォルトでは、素数の探索は、指定された長さの範囲内の
ランダムな位置から開始されます。
開始位置は
.Fl S
オプションによって別の開始位置 (16 進) へ変更することができます。
.Pp
候補となる集合が生成できたら、適合性の検査を行う必要があります。
これは
.Fl T
オプションで実行されます。
この時、
.Nm
は候補を標準入力 (または
.Fl f
オプションで指定したファイル) から読み込みます。
使用例:
.Pp
.Dl ssh-keygen -T moduli-2048 -f moduli-2048.candidates
.Pp
デフォルトでは、各候補は 100 回の素数判定検査にかけられます。
この回数は
.Fl a
オプションによって変更できます。
DH ジェネレータの値は、探索中の素数に応じて自動的に選択されます。
特定のジェネレータが必要な場合は、
.Fl W
オプションで指定できます。
有効なジェネレータの値は 2, 3, 5 です。
.Pp
スクリーニングされた DH 群は、
.Pa /etc/moduli
にインストールできます。
このファイルがある範囲のビット長の係数 (moduli) を格納しており、
通信の両端で共通の係数を共有していることが重要です。
.El
.Sh 関連ファイル
.Bl -tag -width Ds
.It Pa $HOME/.ssh/identity
そのユーザの、プロトコル バージョン 1 における
RSA 認証用秘密鍵を格納します。このファイルはその
ユーザ以外の誰にも見せてはいけません。この鍵を生成するときに
パスフレーズを指定することもできます。パスフレーズは、3DES を使って
ファイル中の秘密鍵の部分を暗号化するのに用いられます。このファイルは
.Nm
によって自動的にアクセスされるわけではありませんが、
秘密鍵ファイルのデフォルトの名前としてこれが提案されます。
.Xr ssh 1
はログイン要求があった際にこのファイルを読み込みます。
.It Pa $HOME/.ssh/identity.pub
プロトコル バージョン 1 における RSA 認証用の公開鍵を格納します。
そのユーザが RSA 認証でログインしたいすべてのマシンの
.Pa $HOME/.ssh/authorized_keys
にこのファイルの内容を追加しておいてください。
このファイルの内容を秘密にしておく必要はありません。
.It Pa $HOME/.ssh/id_dsa
そのユーザの、プロトコル バージョン 2 における
DSA 認証用秘密鍵を格納します。このファイルはその
ユーザ以外の誰にも見せてはいけません。この鍵を生成するときに
パスフレーズを指定することもできます。パスフレーズは、3DES を使って
ファイル中の秘密鍵の部分を暗号化するのに用いられます。このファイルは
.Nm
によって自動的にアクセスされるわけではありませんが、
秘密鍵ファイルのデフォルトの名前としてこれが提案されます。
.Xr ssh 1
はログイン要求があった際にこのファイルを読み込みます。
.It Pa $HOME/.ssh/id_dsa.pub
プロトコル バージョン 2 における DSA 認証用の公開鍵を格納します。
そのユーザが DSA 認証でログインしたいすべてのマシンの
.Pa $HOME/.ssh/authorized_keys
にこのファイルの内容を追加しておいてください。
このファイルの内容を秘密にしておく必要はありません。
.It Pa $HOME/.ssh/id_rsa
そのユーザの、プロトコル バージョン 2 における
RSA 認証用秘密鍵を格納します。このファイルはその
ユーザ以外の誰にも見せてはいけません。この鍵を生成するときに
パスフレーズを指定することもできます。パスフレーズは、3DES を使って
ファイル中の秘密鍵の部分を暗号化するのに用いられます。このファイルは
.Nm
によって自動的にアクセスされるわけではありませんが、
秘密鍵ファイルのデフォルトの名前としてこれが提案されます。
.Xr ssh 1
はログイン要求があった際にこのファイルを読み込みます。
.It Pa $HOME/.ssh/id_rsa.pub
プロトコル バージョン 2 における RSA 認証用の公開鍵を格納します。
そのユーザが RSA 認証でログインしたいすべてのマシンの
.Pa $HOME/.ssh/authorized_keys
にこのファイルの内容を追加しておいてください。
このファイルの内容を秘密にしておく必要はありません。
DH-GEX に使用される Diffie-Hellman 群が記録されています。
このファイルのフォーマットは
.Xr moduli 5
に記述されています。
.El
.Sh 関連項目
.Xr ssh 1 ,
.Xr ssh-add 1 ,
.Xr ssh-agent 1 ,
.Xr moduli 5 ,
.Xr sshd 8
.Rs
.%A J. Galbraith
.%A R. Thayer
.%T "SECSH Public Key File Format"
.%N draft-ietf-secsh-publickeyfile-01.txt
.%D March 2001
.%O work in progress material
.Re
.Sh 作者
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 の貢献によるものです。
.Sh 日本語訳
新山 祐介 (yusuke at cs . nyu . edu) 2003/4/17 (for 3.6.1p1)
.Pp
当マニュアルページは氏のご好意により
.Fx
向けに修正を加えて
.Fx
日本語マニュアルに収録させていただいています。
翻訳についてのご意見、ご指摘がありましたら
.Fx
jpman プロジェクト
.Aq man-jp@jp.FreeBSD.org
または新山氏 (yusuke at cs . nyu . edu) までお送りください。
|