/mandos/trunk

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/trunk

« back to all changes in this revision

Viewing changes to mandos-keygen.xml

  • Committer: Teddy Hogeborn
  • Date: 2016-03-12 20:23:15 UTC
  • Revision ID: teddy@recompile.se-20160312202315-hu7b87ivetlxqbw3
Server: Fix minor thing with Python 3 compatibility

Fix another small thing with unpickling string values.

* mandos (main): When restoring pickled client data, only decode byte
                 string for "host" key if it really is a byte string.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
<?xml version="1.0" encoding="UTF-8"?>
2
2
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3
3
        "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4
 
<!ENTITY VERSION "1.0">
5
4
<!ENTITY COMMANDNAME "mandos-keygen">
6
 
<!ENTITY TIMESTAMP "2008-08-30">
 
5
<!ENTITY TIMESTAMP "2016-03-05">
 
6
<!ENTITY % common SYSTEM "common.ent">
 
7
%common;
7
8
]>
8
9
 
9
10
<refentry xmlns:xi="http://www.w3.org/2001/XInclude">
11
12
    <title>Mandos Manual</title>
12
13
    <!-- NWalsh’s docbook scripts use this to generate the footer: -->
13
14
    <productname>Mandos</productname>
14
 
    <productnumber>&VERSION;</productnumber>
 
15
    <productnumber>&version;</productnumber>
15
16
    <date>&TIMESTAMP;</date>
16
17
    <authorgroup>
17
18
      <author>
18
19
        <firstname>Björn</firstname>
19
20
        <surname>Påhlsson</surname>
20
21
        <address>
21
 
          <email>belorn@fukt.bsnet.se</email>
 
22
          <email>belorn@recompile.se</email>
22
23
        </address>
23
24
      </author>
24
25
      <author>
25
26
        <firstname>Teddy</firstname>
26
27
        <surname>Hogeborn</surname>
27
28
        <address>
28
 
          <email>teddy@fukt.bsnet.se</email>
 
29
          <email>teddy@recompile.se</email>
29
30
        </address>
30
31
      </author>
31
32
    </authorgroup>
32
33
    <copyright>
33
34
      <year>2008</year>
 
35
      <year>2009</year>
 
36
      <year>2010</year>
 
37
      <year>2011</year>
 
38
      <year>2012</year>
 
39
      <year>2013</year>
 
40
      <year>2014</year>
 
41
      <year>2015</year>
 
42
      <year>2016</year>
34
43
      <holder>Teddy Hogeborn</holder>
35
44
      <holder>Björn Påhlsson</holder>
36
45
    </copyright>
37
 
    <legalnotice>
38
 
      <para>
39
 
        This manual page is free software: you can redistribute it
40
 
        and/or modify it under the terms of the GNU General Public
41
 
        License as published by the Free Software Foundation,
42
 
        either version 3 of the License, or (at your option) any
43
 
        later version.
44
 
      </para>
45
 
 
46
 
      <para>
47
 
        This manual page is distributed in the hope that it will
48
 
        be useful, but WITHOUT ANY WARRANTY; without even the
49
 
        implied warranty of MERCHANTABILITY or FITNESS FOR A
50
 
        PARTICULAR PURPOSE.  See the GNU General Public License
51
 
        for more details.
52
 
      </para>
53
 
 
54
 
      <para>
55
 
        You should have received a copy of the GNU General Public
56
 
        License along with this program; If not, see
57
 
        <ulink url="http://www.gnu.org/licenses/"/>.
58
 
      </para>
59
 
    </legalnotice>
 
46
    <xi:include href="legalnotice.xml"/>
60
47
  </refentryinfo>
61
 
 
 
48
  
62
49
  <refmeta>
63
50
    <refentrytitle>&COMMANDNAME;</refentrytitle>
64
51
    <manvolnum>8</manvolnum>
67
54
  <refnamediv>
68
55
    <refname><command>&COMMANDNAME;</command></refname>
69
56
    <refpurpose>
70
 
      Generate keys for <citerefentry><refentrytitle>password-request
71
 
      </refentrytitle><manvolnum>8mandos</manvolnum></citerefentry>
 
57
      Generate key and password for Mandos client and server.
72
58
    </refpurpose>
73
59
  </refnamediv>
74
 
 
 
60
  
75
61
  <refsynopsisdiv>
76
62
    <cmdsynopsis>
77
63
      <command>&COMMANDNAME;</command>
138
124
        <replaceable>TIME</replaceable></option></arg>
139
125
      </group>
140
126
      <sbr/>
141
 
      <arg><option>--force</option></arg>
 
127
      <group>
 
128
        <arg choice="plain"><option>--force</option></arg>
 
129
        <arg choice="plain"><option>-f</option></arg>
 
130
      </group>
142
131
    </cmdsynopsis>
143
132
    <cmdsynopsis>
144
133
      <command>&COMMANDNAME;</command>
145
134
      <group choice="req">
 
135
        <arg choice="plain"><option>--password</option></arg>
146
136
        <arg choice="plain"><option>-p</option></arg>
147
 
        <arg choice="plain"><option>--password</option></arg>
 
137
        <arg choice="plain"><option>--passfile
 
138
        <replaceable>FILE</replaceable></option></arg>
 
139
        <arg choice="plain"><option>-F</option>
 
140
        <replaceable>FILE</replaceable></arg>
148
141
      </group>
149
142
      <sbr/>
150
143
      <group>
160
153
        <arg choice="plain"><option>-n
161
154
        <replaceable>NAME</replaceable></option></arg>
162
155
      </group>
 
156
      <group>
 
157
        <arg choice="plain"><option>--no-ssh</option></arg>
 
158
        <arg choice="plain"><option>-S</option></arg>
 
159
      </group>
163
160
    </cmdsynopsis>
164
161
    <cmdsynopsis>
165
162
      <command>&COMMANDNAME;</command>
166
163
      <group choice="req">
 
164
        <arg choice="plain"><option>--help</option></arg>
167
165
        <arg choice="plain"><option>-h</option></arg>
168
 
        <arg choice="plain"><option>--help</option></arg>
169
166
      </group>
170
167
    </cmdsynopsis>
171
168
    <cmdsynopsis>
172
169
      <command>&COMMANDNAME;</command>
173
170
      <group choice="req">
 
171
        <arg choice="plain"><option>--version</option></arg>
174
172
        <arg choice="plain"><option>-v</option></arg>
175
 
        <arg choice="plain"><option>--version</option></arg>
176
173
      </group>
177
174
    </cmdsynopsis>
178
175
  </refsynopsisdiv>
179
 
 
 
176
  
180
177
  <refsect1 id="description">
181
178
    <title>DESCRIPTION</title>
182
179
    <para>
183
180
      <command>&COMMANDNAME;</command> is a program to generate the
184
 
      OpenPGP keys used by
185
 
      <citerefentry><refentrytitle>password-request</refentrytitle>
186
 
      <manvolnum>8mandos</manvolnum></citerefentry>.  The keys are
 
181
      OpenPGP key used by
 
182
      <citerefentry><refentrytitle>mandos-client</refentrytitle>
 
183
      <manvolnum>8mandos</manvolnum></citerefentry>.  The key is
187
184
      normally written to /etc/mandos for later installation into the
188
 
      initrd image, but this, like most things, can be changed with
189
 
      command line options.
 
185
      initrd image, but this, and most other things, can be changed
 
186
      with command line options.
190
187
    </para>
191
188
    <para>
192
 
      It can also be used to generate ready-made sections for
 
189
      This program can also be used with the
 
190
      <option>--password</option> or <option>--passfile</option>
 
191
      options to generate a ready-made section for
 
192
      <filename>clients.conf</filename> (see
193
193
      <citerefentry><refentrytitle>mandos-clients.conf</refentrytitle>
194
 
      <manvolnum>5</manvolnum></citerefentry> using the
195
 
      <option>--password</option> option.
 
194
      <manvolnum>5</manvolnum></citerefentry>).
196
195
    </para>
197
196
  </refsect1>
198
197
  
199
198
  <refsect1 id="purpose">
200
199
    <title>PURPOSE</title>
201
 
 
202
200
    <para>
203
201
      The purpose of this is to enable <emphasis>remote and unattended
204
202
      rebooting</emphasis> of client host computer with an
205
203
      <emphasis>encrypted root file system</emphasis>.  See <xref
206
204
      linkend="overview"/> for details.
207
205
    </para>
208
 
 
209
206
  </refsect1>
210
207
  
211
208
  <refsect1 id="options">
212
209
    <title>OPTIONS</title>
213
 
 
 
210
    
214
211
    <variablelist>
215
212
      <varlistentry>
216
 
        <term><literal>-h</literal>, <literal>--help</literal></term>
 
213
        <term><option>--help</option></term>
 
214
        <term><option>-h</option></term>
217
215
        <listitem>
218
216
          <para>
219
217
            Show a help message and exit
220
218
          </para>
221
219
        </listitem>
222
220
      </varlistentry>
223
 
 
 
221
      
224
222
      <varlistentry>
225
 
        <term><literal>-d</literal>, <literal>--dir
226
 
        <replaceable>directory</replaceable></literal></term>
 
223
        <term><option>--dir
 
224
        <replaceable>DIRECTORY</replaceable></option></term>
 
225
        <term><option>-d
 
226
        <replaceable>DIRECTORY</replaceable></option></term>
227
227
        <listitem>
228
228
          <para>
229
229
            Target directory for key files.  Default is
230
 
            <filename>/etc/mandos</filename>.
231
 
          </para>
232
 
        </listitem>
233
 
      </varlistentry>
234
 
 
235
 
      <varlistentry>
236
 
        <term><literal>-t</literal>, <literal>--type
237
 
        <replaceable>type</replaceable></literal></term>
238
 
        <listitem>
239
 
          <para>
240
 
            Key type.  Default is <quote>DSA</quote>.
241
 
          </para>
242
 
        </listitem>
243
 
      </varlistentry>
244
 
 
245
 
      <varlistentry>
246
 
        <term><literal>-l</literal>, <literal>--length
247
 
        <replaceable>bits</replaceable></literal></term>
248
 
        <listitem>
249
 
          <para>
250
 
            Key length in bits.  Default is 2048.
251
 
          </para>
252
 
        </listitem>
253
 
      </varlistentry>
254
 
 
255
 
      <varlistentry>
256
 
        <term><literal>-s</literal>, <literal>--subtype
257
 
        <replaceable>type</replaceable></literal></term>
258
 
        <listitem>
259
 
          <para>
260
 
            Subkey type.  Default is <quote>ELG-E</quote> (Elgamal
 
230
            <filename class="directory">/etc/mandos</filename>.
 
231
          </para>
 
232
        </listitem>
 
233
      </varlistentry>
 
234
      
 
235
      <varlistentry>
 
236
        <term><option>--type
 
237
        <replaceable>TYPE</replaceable></option></term>
 
238
        <term><option>-t
 
239
        <replaceable>TYPE</replaceable></option></term>
 
240
        <listitem>
 
241
          <para>
 
242
            Key type.  Default is <quote>RSA</quote>.
 
243
          </para>
 
244
        </listitem>
 
245
      </varlistentry>
 
246
      
 
247
      <varlistentry>
 
248
        <term><option>--length
 
249
        <replaceable>BITS</replaceable></option></term>
 
250
        <term><option>-l
 
251
        <replaceable>BITS</replaceable></option></term>
 
252
        <listitem>
 
253
          <para>
 
254
            Key length in bits.  Default is 4096.
 
255
          </para>
 
256
        </listitem>
 
257
      </varlistentry>
 
258
      
 
259
      <varlistentry>
 
260
        <term><option>--subtype
 
261
        <replaceable>KEYTYPE</replaceable></option></term>
 
262
        <term><option>-s
 
263
        <replaceable>KEYTYPE</replaceable></option></term>
 
264
        <listitem>
 
265
          <para>
 
266
            Subkey type.  Default is <quote>RSA</quote> (Elgamal
261
267
            encryption-only).
262
268
          </para>
263
269
        </listitem>
264
270
      </varlistentry>
265
 
 
 
271
      
266
272
      <varlistentry>
267
 
        <term><literal>-L</literal>, <literal>--sublength
268
 
        <replaceable>bits</replaceable></literal></term>
 
273
        <term><option>--sublength
 
274
        <replaceable>BITS</replaceable></option></term>
 
275
        <term><option>-L
 
276
        <replaceable>BITS</replaceable></option></term>
269
277
        <listitem>
270
278
          <para>
271
 
            Subkey length in bits.  Default is 2048.
 
279
            Subkey length in bits.  Default is 4096.
272
280
          </para>
273
281
        </listitem>
274
282
      </varlistentry>
275
 
 
 
283
      
276
284
      <varlistentry>
277
 
        <term><literal>-e</literal>, <literal>--email</literal>
278
 
        <replaceable>address</replaceable></term>
 
285
        <term><option>--email
 
286
        <replaceable>ADDRESS</replaceable></option></term>
 
287
        <term><option>-e
 
288
        <replaceable>ADDRESS</replaceable></option></term>
279
289
        <listitem>
280
290
          <para>
281
291
            Email address of key.  Default is empty.
282
292
          </para>
283
293
        </listitem>
284
294
      </varlistentry>
285
 
 
 
295
      
286
296
      <varlistentry>
287
 
        <term><literal>-c</literal>, <literal>--comment</literal>
288
 
        <replaceable>comment</replaceable></term>
 
297
        <term><option>--comment
 
298
        <replaceable>TEXT</replaceable></option></term>
 
299
        <term><option>-c
 
300
        <replaceable>TEXT</replaceable></option></term>
289
301
        <listitem>
290
302
          <para>
291
 
            Comment field for key.  The default value is
292
 
            <quote><literal>Mandos client key</literal></quote>.
 
303
            Comment field for key.  Default is empty.
293
304
          </para>
294
305
        </listitem>
295
306
      </varlistentry>
296
 
 
 
307
      
297
308
      <varlistentry>
298
 
        <term><literal>-x</literal>, <literal>--expire</literal>
299
 
        <replaceable>time</replaceable></term>
 
309
        <term><option>--expire
 
310
        <replaceable>TIME</replaceable></option></term>
 
311
        <term><option>-x
 
312
        <replaceable>TIME</replaceable></option></term>
300
313
        <listitem>
301
314
          <para>
302
315
            Key expire time.  Default is no expiration.  See
305
318
          </para>
306
319
        </listitem>
307
320
      </varlistentry>
308
 
 
 
321
      
309
322
      <varlistentry>
310
 
        <term><literal>-f</literal>, <literal>--force</literal></term>
 
323
        <term><option>--force</option></term>
 
324
        <term><option>-f</option></term>
311
325
        <listitem>
312
326
          <para>
313
 
            Force overwriting old keys.
 
327
            Force overwriting old key.
314
328
          </para>
315
329
        </listitem>
316
330
      </varlistentry>
317
331
      <varlistentry>
318
 
        <term><literal>-p</literal>, <literal>--password</literal
319
 
        ></term>
 
332
        <term><option>--password</option></term>
 
333
        <term><option>-p</option></term>
320
334
        <listitem>
321
335
          <para>
322
336
            Prompt for a password and encrypt it with the key already
328
342
            >8</manvolnum></citerefentry>.  The host name or the name
329
343
            specified with the <option>--name</option> option is used
330
344
            for the section header.  All other options are ignored,
331
 
            and no keys are created.
 
345
            and no key is created.
 
346
          </para>
 
347
        </listitem>
 
348
      </varlistentry>
 
349
      <varlistentry>
 
350
        <term><option>--passfile
 
351
        <replaceable>FILE</replaceable></option></term>
 
352
        <term><option>-F
 
353
        <replaceable>FILE</replaceable></option></term>
 
354
        <listitem>
 
355
          <para>
 
356
            The same as <option>--password</option>, but read from
 
357
            <replaceable>FILE</replaceable>, not the terminal.
 
358
          </para>
 
359
        </listitem>
 
360
      </varlistentry>
 
361
      <varlistentry>
 
362
        <term><option>--no-ssh</option></term>
 
363
        <term><option>-S</option></term>
 
364
        <listitem>
 
365
          <para>
 
366
            When <option>--password</option> or
 
367
            <option>--passfile</option> is given, this option will
 
368
            prevent <command>&COMMANDNAME;</command> from calling
 
369
            <command>ssh-keyscan</command> to get an SSH fingerprint
 
370
            for this host and, if successful, output suitable config
 
371
            options to use this fingerprint as a
 
372
            <option>checker</option> option in the output.  This is
 
373
            otherwise the default behavior.
332
374
          </para>
333
375
        </listitem>
334
376
      </varlistentry>
335
377
    </variablelist>
336
378
  </refsect1>
337
 
 
 
379
  
338
380
  <refsect1 id="overview">
339
381
    <title>OVERVIEW</title>
340
382
    <xi:include href="overview.xml"/>
341
383
    <para>
342
384
      This program is a small utility to generate new OpenPGP keys for
343
 
      new Mandos clients.
 
385
      new Mandos clients, and to generate sections for inclusion in
 
386
      <filename>clients.conf</filename> on the server.
344
387
    </para>
345
388
  </refsect1>
346
 
 
 
389
  
347
390
  <refsect1 id="exit_status">
348
391
    <title>EXIT STATUS</title>
349
392
    <para>
350
 
      The exit status will be 0 if new keys were successfully created,
351
 
      otherwise not.
 
393
      The exit status will be 0 if a new key (or password, if the
 
394
      <option>--password</option> option was used) was successfully
 
395
      created, otherwise not.
352
396
    </para>
353
397
  </refsect1>
354
398
  
368
412
    </variablelist>
369
413
  </refsect1>
370
414
  
371
 
  <refsect1 id="file">
 
415
  <refsect1 id="files">
372
416
    <title>FILES</title>
373
417
    <para>
374
418
      Use the <option>--dir</option> option to change where
395
439
        </listitem>
396
440
      </varlistentry>
397
441
      <varlistentry>
398
 
        <term><filename>/tmp</filename></term>
 
442
        <term><filename class="directory">/tmp</filename></term>
399
443
        <listitem>
400
444
          <para>
401
445
            Temporary files will be written here if
405
449
      </varlistentry>
406
450
    </variablelist>
407
451
  </refsect1>
408
 
 
 
452
  
409
453
  <refsect1 id="bugs">
410
454
    <title>BUGS</title>
411
 
    <para>
412
 
      None are known at this time.
413
 
    </para>
 
455
    <xi:include href="bugs.xml"/>
414
456
  </refsect1>
415
 
 
 
457
  
416
458
  <refsect1 id="example">
417
459
    <title>EXAMPLE</title>
418
460
    <informalexample>
425
467
    </informalexample>
426
468
    <informalexample>
427
469
      <para>
428
 
        Create keys in another directory and of another type.  Force
 
470
        Create key in another directory and of another type.  Force
429
471
        overwriting old key files:
430
472
      </para>
431
473
      <para>
435
477
 
436
478
      </para>
437
479
    </informalexample>
 
480
    <informalexample>
 
481
      <para>
 
482
        Prompt for a password, encrypt it with the key in <filename
 
483
        class="directory">/etc/mandos</filename> and output a section
 
484
        suitable for <filename>clients.conf</filename>.
 
485
      </para>
 
486
      <para>
 
487
        <userinput>&COMMANDNAME; --password</userinput>
 
488
      </para>
 
489
    </informalexample>
 
490
    <informalexample>
 
491
      <para>
 
492
        Prompt for a password, encrypt it with the key in the
 
493
        <filename>client-key</filename> directory and output a section
 
494
        suitable for <filename>clients.conf</filename>.
 
495
      </para>
 
496
      <para>
 
497
 
 
498
<!-- do not wrap this line -->
 
499
<userinput>&COMMANDNAME; --password --dir client-key</userinput>
 
500
 
 
501
      </para>
 
502
    </informalexample>
438
503
  </refsect1>
439
 
 
 
504
  
440
505
  <refsect1 id="security">
441
506
    <title>SECURITY</title>
442
507
    <para>
443
508
      The <option>--type</option>, <option>--length</option>,
444
509
      <option>--subtype</option>, and <option>--sublength</option>
445
 
      options can be used to create keys of insufficient security.  If
446
 
      in doubt, leave them to the default values.
 
510
      options can be used to create keys of low security.  If in
 
511
      doubt, leave them to the default values.
447
512
    </para>
448
513
    <para>
449
 
      The key expire time is not guaranteed to be honored by
450
 
      <citerefentry><refentrytitle>mandos</refentrytitle>
 
514
      The key expire time is <emphasis>not</emphasis> guaranteed to be
 
515
      honored by <citerefentry><refentrytitle>mandos</refentrytitle>
451
516
      <manvolnum>8</manvolnum></citerefentry>.
452
517
    </para>
453
518
  </refsect1>
454
 
 
 
519
  
455
520
  <refsect1 id="see_also">
456
521
    <title>SEE ALSO</title>
457
522
    <para>
 
523
      <citerefentry><refentrytitle>intro</refentrytitle>
 
524
      <manvolnum>8mandos</manvolnum></citerefentry>,
458
525
      <citerefentry><refentrytitle>gpg</refentrytitle>
459
526
      <manvolnum>1</manvolnum></citerefentry>,
 
527
      <citerefentry><refentrytitle>mandos-clients.conf</refentrytitle>
 
528
      <manvolnum>5</manvolnum></citerefentry>,
460
529
      <citerefentry><refentrytitle>mandos</refentrytitle>
461
530
      <manvolnum>8</manvolnum></citerefentry>,
462
 
      <citerefentry><refentrytitle>password-request</refentrytitle>
463
 
      <manvolnum>8mandos</manvolnum></citerefentry>
 
531
      <citerefentry><refentrytitle>mandos-client</refentrytitle>
 
532
      <manvolnum>8mandos</manvolnum></citerefentry>,
 
533
      <citerefentry><refentrytitle>ssh-keyscan</refentrytitle>
 
534
      <manvolnum>1</manvolnum></citerefentry>
464
535
    </para>
465
536
  </refsect1>
466
537