blob: d704f06608dcdb5e175a97fae8353df47fdd0a7b [file] [log] [blame]
Damien Miller15f5b562010-03-03 10:25:21 +11001.\" $OpenBSD: ssh-keygen.1,v 1.85 2010/02/26 22:09:28 jmc Exp $
Ben Lindstrom36579d32001-01-29 07:39:26 +00002.\"
Damien Miller32aa1441999-10-29 09:15:49 +10003.\" -*- nroff -*-
4.\"
Damien Miller32aa1441999-10-29 09:15:49 +10005.\" Author: Tatu Ylonen <ylo@cs.hut.fi>
Damien Miller32aa1441999-10-29 09:15:49 +10006.\" Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
7.\" All rights reserved
8.\"
Damien Millere4340be2000-09-16 13:29:08 +11009.\" As far as I am concerned, the code I have written for this software
10.\" can be used freely for any purpose. Any derived versions of this
11.\" software must be clearly marked as such, and if the derived work is
12.\" incompatible with the protocol description in the RFC file, it must be
13.\" called by a name other than "ssh" or "Secure Shell".
Damien Miller32aa1441999-10-29 09:15:49 +100014.\"
Damien Millere4340be2000-09-16 13:29:08 +110015.\"
Ben Lindstrom92a2e382001-03-05 06:59:27 +000016.\" Copyright (c) 1999,2000 Markus Friedl. All rights reserved.
17.\" Copyright (c) 1999 Aaron Campbell. All rights reserved.
18.\" Copyright (c) 1999 Theo de Raadt. All rights reserved.
Damien Millere4340be2000-09-16 13:29:08 +110019.\"
20.\" Redistribution and use in source and binary forms, with or without
21.\" modification, are permitted provided that the following conditions
22.\" are met:
23.\" 1. Redistributions of source code must retain the above copyright
24.\" notice, this list of conditions and the following disclaimer.
25.\" 2. Redistributions in binary form must reproduce the above copyright
26.\" notice, this list of conditions and the following disclaimer in the
27.\" documentation and/or other materials provided with the distribution.
28.\"
29.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
30.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
31.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
32.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
33.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
34.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
35.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
36.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
37.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
38.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Damien Miller32aa1441999-10-29 09:15:49 +100039.\"
Damien Miller0a80ca12010-02-27 07:55:05 +110040.Dd $Mdocdate: February 26 2010 $
Damien Miller32aa1441999-10-29 09:15:49 +100041.Dt SSH-KEYGEN 1
42.Os
43.Sh NAME
44.Nm ssh-keygen
Ben Lindstrom5a707822001-04-22 17:15:46 +000045.Nd authentication key generation, management and conversion
Damien Miller32aa1441999-10-29 09:15:49 +100046.Sh SYNOPSIS
47.Nm ssh-keygen
Damien Miller495dca32003-04-01 21:42:14 +100048.Bk -words
Damien Miller0bc1bd82000-11-13 22:57:25 +110049.Op Fl q
Damien Miller32aa1441999-10-29 09:15:49 +100050.Op Fl b Ar bits
Damien Miller55fafa02002-02-19 15:22:07 +110051.Fl t Ar type
Damien Miller32aa1441999-10-29 09:15:49 +100052.Op Fl N Ar new_passphrase
53.Op Fl C Ar comment
Damien Miller1a425f32000-09-02 10:08:09 +110054.Op Fl f Ar output_keyfile
Damien Miller495dca32003-04-01 21:42:14 +100055.Ek
Damien Miller32aa1441999-10-29 09:15:49 +100056.Nm ssh-keygen
57.Fl p
58.Op Fl P Ar old_passphrase
59.Op Fl N Ar new_passphrase
Damien Miller10f6f6b1999-11-17 17:29:08 +110060.Op Fl f Ar keyfile
Damien Miller32aa1441999-10-29 09:15:49 +100061.Nm ssh-keygen
Ben Lindstrom5a707822001-04-22 17:15:46 +000062.Fl i
Damien Miller1a425f32000-09-02 10:08:09 +110063.Op Fl f Ar input_keyfile
Damien Millere247cc42000-05-07 12:03:14 +100064.Nm ssh-keygen
Ben Lindstrom5a707822001-04-22 17:15:46 +000065.Fl e
Damien Miller1a425f32000-09-02 10:08:09 +110066.Op Fl f Ar input_keyfile
Damien Millere247cc42000-05-07 12:03:14 +100067.Nm ssh-keygen
68.Fl y
Damien Miller1a425f32000-09-02 10:08:09 +110069.Op Fl f Ar input_keyfile
Damien Millere247cc42000-05-07 12:03:14 +100070.Nm ssh-keygen
Damien Miller32aa1441999-10-29 09:15:49 +100071.Fl c
72.Op Fl P Ar passphrase
73.Op Fl C Ar comment
Damien Miller10f6f6b1999-11-17 17:29:08 +110074.Op Fl f Ar keyfile
75.Nm ssh-keygen
76.Fl l
Ben Lindstrom8fd372b2001-03-12 03:02:17 +000077.Op Fl f Ar input_keyfile
78.Nm ssh-keygen
79.Fl B
Damien Miller1a425f32000-09-02 10:08:09 +110080.Op Fl f Ar input_keyfile
Ben Lindstroma1ec4a92001-08-06 21:51:34 +000081.Nm ssh-keygen
Damien Miller048dc932010-02-12 09:22:04 +110082.Fl D Ar pkcs11
Ben Lindstroma1ec4a92001-08-06 21:51:34 +000083.Nm ssh-keygen
Damien Miller4b42d7f2005-03-01 21:48:35 +110084.Fl F Ar hostname
85.Op Fl f Ar known_hosts_file
Damien Miller718ed502008-11-03 19:15:20 +110086.Op Fl l
Damien Miller4b42d7f2005-03-01 21:48:35 +110087.Nm ssh-keygen
88.Fl H
89.Op Fl f Ar known_hosts_file
90.Nm ssh-keygen
91.Fl R Ar hostname
92.Op Fl f Ar known_hosts_file
93.Nm ssh-keygen
Damien Miller37876e92003-05-15 10:19:46 +100094.Fl r Ar hostname
95.Op Fl f Ar input_keyfile
96.Op Fl g
Darren Tucker019cefe2003-08-02 22:40:07 +100097.Nm ssh-keygen
98.Fl G Ar output_file
Darren Tucker06930c72003-12-31 11:34:51 +110099.Op Fl v
Darren Tucker019cefe2003-08-02 22:40:07 +1000100.Op Fl b Ar bits
101.Op Fl M Ar memory
102.Op Fl S Ar start_point
103.Nm ssh-keygen
104.Fl T Ar output_file
105.Fl f Ar input_file
Darren Tucker06930c72003-12-31 11:34:51 +1100106.Op Fl v
Darren Tucker019cefe2003-08-02 22:40:07 +1000107.Op Fl a Ar num_trials
108.Op Fl W Ar generator
Damien Miller0a80ca12010-02-27 07:55:05 +1100109.Nm ssh-keygen
Damien Miller15f5b562010-03-03 10:25:21 +1100110.Bk -words
Damien Miller0a80ca12010-02-27 07:55:05 +1100111.Fl s Ar ca_key
112.Fl I Ar certificate_identity
113.Op Fl h
114.Op Fl n Ar principals
115.Op Fl O Ar constraint
116.Op Fl V Ar validity_interval
117.Ar
Damien Miller15f5b562010-03-03 10:25:21 +1100118.Ek
Damien Miller22c77262000-04-13 12:26:34 +1000119.Sh DESCRIPTION
Damien Miller32aa1441999-10-29 09:15:49 +1000120.Nm
Ben Lindstrom5a707822001-04-22 17:15:46 +0000121generates, manages and converts authentication keys for
Damien Miller32aa1441999-10-29 09:15:49 +1000122.Xr ssh 1 .
Damien Millere247cc42000-05-07 12:03:14 +1000123.Nm
Ben Lindstromcb72e4f2002-06-21 00:41:51 +0000124can create RSA keys for use by SSH protocol version 1 and RSA or DSA
Damien Millerfbf486b2003-05-23 18:44:23 +1000125keys for use by SSH protocol version 2.
126The type of key to be generated is specified with the
Damien Miller0bc1bd82000-11-13 22:57:25 +1100127.Fl t
Damien Millera41c8b12002-01-22 23:05:08 +1100128option.
Damien Millerf14be5c2005-11-05 15:15:49 +1100129If invoked without any arguments,
130.Nm
Damien Miller83d0d392005-11-05 15:16:27 +1100131will generate an RSA key for use in SSH protocol 2 connections.
Damien Millere247cc42000-05-07 12:03:14 +1000132.Pp
Darren Tucker019cefe2003-08-02 22:40:07 +1000133.Nm
134is also used to generate groups for use in Diffie-Hellman group
135exchange (DH-GEX).
136See the
137.Sx MODULI GENERATION
138section for details.
139.Pp
Damien Miller32aa1441999-10-29 09:15:49 +1000140Normally each user wishing to use SSH
Damien Millere247cc42000-05-07 12:03:14 +1000141with RSA or DSA authentication runs this once to create the authentication
Damien Miller32aa1441999-10-29 09:15:49 +1000142key in
Damien Miller167ea5d2005-05-26 12:04:02 +1000143.Pa ~/.ssh/identity ,
144.Pa ~/.ssh/id_dsa
Damien Millere247cc42000-05-07 12:03:14 +1000145or
Damien Miller167ea5d2005-05-26 12:04:02 +1000146.Pa ~/.ssh/id_rsa .
Damien Millere247cc42000-05-07 12:03:14 +1000147Additionally, the system administrator may use this to generate host keys,
148as seen in
149.Pa /etc/rc .
Damien Miller32aa1441999-10-29 09:15:49 +1000150.Pp
151Normally this program generates the key and asks for a file in which
Damien Miller450a7a12000-03-26 13:04:51 +1000152to store the private key.
153The public key is stored in a file with the same name but
Damien Miller32aa1441999-10-29 09:15:49 +1000154.Dq .pub
Damien Miller450a7a12000-03-26 13:04:51 +1000155appended.
156The program also asks for a passphrase.
157The passphrase may be empty to indicate no passphrase
Ben Lindstrombf555ba2001-01-18 02:04:35 +0000158(host keys must have an empty passphrase), or it may be a string of
Damien Miller450a7a12000-03-26 13:04:51 +1000159arbitrary length.
Ben Lindstrom4e366d52001-12-06 16:43:21 +0000160A passphrase is similar to a password, except it can be a phrase with a
161series of words, punctuation, numbers, whitespace, or any string of
162characters you want.
163Good passphrases are 10-30 characters long, are
Damien Miller32aa1441999-10-29 09:15:49 +1000164not simple sentences or otherwise easily guessable (English
Ben Lindstrom2a097a42001-06-09 01:13:40 +0000165prose has only 1-2 bits of entropy per character, and provides very bad
Ben Lindstrom4e366d52001-12-06 16:43:21 +0000166passphrases), and contain a mix of upper and lowercase letters,
167numbers, and non-alphanumeric characters.
Damien Miller450a7a12000-03-26 13:04:51 +1000168The passphrase can be changed later by using the
Damien Miller32aa1441999-10-29 09:15:49 +1000169.Fl p
170option.
171.Pp
Damien Miller450a7a12000-03-26 13:04:51 +1000172There is no way to recover a lost passphrase.
173If the passphrase is
Ben Lindstrom594e2032001-09-12 18:35:30 +0000174lost or forgotten, a new key must be generated and copied to the
Damien Miller32aa1441999-10-29 09:15:49 +1000175corresponding public key to other machines.
176.Pp
Ben Lindstrom5a707822001-04-22 17:15:46 +0000177For RSA1 keys,
178there is also a comment field in the key file that is only for
Damien Miller450a7a12000-03-26 13:04:51 +1000179convenience to the user to help identify the key.
180The comment can tell what the key is for, or whatever is useful.
181The comment is initialized to
Damien Miller32aa1441999-10-29 09:15:49 +1000182.Dq user@host
183when the key is created, but can be changed using the
184.Fl c
185option.
186.Pp
Damien Millere247cc42000-05-07 12:03:14 +1000187After a key is generated, instructions below detail where the keys
188should be placed to be activated.
189.Pp
Damien Miller32aa1441999-10-29 09:15:49 +1000190The options are as follows:
191.Bl -tag -width Ds
Darren Tucker019cefe2003-08-02 22:40:07 +1000192.It Fl a Ar trials
193Specifies the number of primality tests to perform when screening DH-GEX
194candidates using the
195.Fl T
196command.
Damien Miller265d3092005-03-02 12:05:06 +1100197.It Fl B
198Show the bubblebabble digest of specified private or public key file.
Damien Miller32aa1441999-10-29 09:15:49 +1000199.It Fl b Ar bits
Damien Miller450a7a12000-03-26 13:04:51 +1000200Specifies the number of bits in the key to create.
Darren Tucker9f647332005-11-28 16:41:46 +1100201For RSA keys, the minimum size is 768 bits and the default is 2048 bits.
Damien Millerac7ef6a2005-06-16 13:19:06 +1000202Generally, 2048 bits is considered sufficient.
Darren Tucker9f647332005-11-28 16:41:46 +1100203DSA keys must be exactly 1024 bits as specified by FIPS 186-2.
Damien Miller265d3092005-03-02 12:05:06 +1100204.It Fl C Ar comment
205Provides a new comment.
Damien Miller32aa1441999-10-29 09:15:49 +1000206.It Fl c
207Requests changing the comment in the private and public key files.
Damien Millereb5fec62001-11-12 10:52:44 +1100208This operation is only supported for RSA1 keys.
Damien Miller32aa1441999-10-29 09:15:49 +1000209The program will prompt for the file containing the private keys, for
Ben Lindstromaafff9c2001-05-06 03:01:02 +0000210the passphrase if the key has one, and for the new comment.
Damien Miller7ea845e2010-02-12 09:21:02 +1100211.It Fl D Ar pkcs11
Damien Millera7618442010-02-12 09:26:02 +1100212Download the RSA public keys provided by the PKCS#11 shared library
213.Ar pkcs11 .
Ben Lindstrom5a707822001-04-22 17:15:46 +0000214.It Fl e
Ben Lindstrom46c264f2001-04-24 16:56:58 +0000215This option will read a private or public OpenSSH key file and
Damien Millerc0367fb2007-01-05 16:25:46 +1100216print the key in
217RFC 4716 SSH Public Key File Format
Ben Lindstrom5a707822001-04-22 17:15:46 +0000218to stdout.
219This option allows exporting keys for use by several commercial
220SSH implementations.
Damien Miller265d3092005-03-02 12:05:06 +1100221.It Fl F Ar hostname
222Search for the specified
223.Ar hostname
224in a
225.Pa known_hosts
226file, listing any occurrences found.
227This option is useful to find hashed host names or addresses and may also be
228used in conjunction with the
229.Fl H
230option to print found keys in a hashed format.
231.It Fl f Ar filename
232Specifies the filename of the key file.
233.It Fl G Ar output_file
234Generate candidate primes for DH-GEX.
235These primes must be screened for
236safety (using the
237.Fl T
238option) before use.
Damien Miller37876e92003-05-15 10:19:46 +1000239.It Fl g
Darren Tucker0b42e6d2004-08-13 21:22:40 +1000240Use generic DNS format when printing fingerprint resource records using the
Darren Tucker6e370372004-08-13 21:23:25 +1000241.Fl r
Darren Tucker0b42e6d2004-08-13 21:22:40 +1000242command.
Damien Miller265d3092005-03-02 12:05:06 +1100243.It Fl H
244Hash a
245.Pa known_hosts
Darren Tuckerda1adbc2005-03-14 23:15:58 +1100246file.
247This replaces all hostnames and addresses with hashed representations
248within the specified file; the original content is moved to a file with
249a .old suffix.
Damien Miller265d3092005-03-02 12:05:06 +1100250These hashes may be used normally by
251.Nm ssh
252and
253.Nm sshd ,
254but they do not reveal identifying information should the file's contents
255be disclosed.
256This option will not modify existing hashed hostnames and is therefore safe
257to use on files that mix hashed and non-hashed names.
Damien Miller0a80ca12010-02-27 07:55:05 +1100258.It Fl h
259When signing a key, create a host certificate instead of a user
260certificate.
261Please see the
262.Sx CERTIFICATES
263section for details.
Damien Miller15f5b562010-03-03 10:25:21 +1100264.It Fl I Ar certificate_identity
Damien Miller0a80ca12010-02-27 07:55:05 +1100265Specify the key identity when signing a public key.
266Please see the
267.Sx CERTIFICATES
268section for details.
Ben Lindstrom5a707822001-04-22 17:15:46 +0000269.It Fl i
270This option will read an unencrypted private (or public) key file
271in SSH2-compatible format and print an OpenSSH compatible private
272(or public) key to stdout.
273.Nm
Ben Lindstrom2857d9c2001-04-22 17:19:46 +0000274also reads the
Darren Tucker26dc3e62007-02-19 22:09:06 +1100275RFC 4716 SSH Public Key File Format.
Ben Lindstrom5a707822001-04-22 17:15:46 +0000276This option allows importing keys from several commercial
277SSH implementations.
Damien Miller10f6f6b1999-11-17 17:29:08 +1100278.It Fl l
Darren Tucker35c45532008-06-13 04:43:15 +1000279Show fingerprint of specified public key file.
Damien Millereb5fec62001-11-12 10:52:44 +1100280Private RSA1 keys are also supported.
281For RSA and DSA keys
282.Nm
Darren Tuckerf09e8252008-06-13 05:18:03 +1000283tries to find the matching public key file and prints its fingerprint.
284If combined with
285.Fl v ,
286an ASCII art representation of the key is supplied with the fingerprint.
Damien Miller265d3092005-03-02 12:05:06 +1100287.It Fl M Ar memory
288Specify the amount of memory to use (in megabytes) when generating
289candidate moduli for DH-GEX.
290.It Fl N Ar new_passphrase
291Provides the new passphrase.
Damien Miller0a80ca12010-02-27 07:55:05 +1100292.It Fl n Ar principals
293Specify one or more principals (user or host names) to be included in
294a certificate when signing a key.
295Multiple principals may be specified, separated by commas.
296Please see the
297.Sx CERTIFICATES
298section for details.
299.It Fl O Ar constraint
300Specify a certificate constraint when signing a key.
301This option may be specified multiple times.
302Please see the
303.Sx CERTIFICATES
304section for details.
305The constraints that are valid for user certificates are:
306.Bl -tag -width Ds
307.It Ic no-x11-forwarding
Damien Miller15f5b562010-03-03 10:25:21 +1100308Disable X11 forwarding (permitted by default).
Damien Miller0a80ca12010-02-27 07:55:05 +1100309.It Ic no-agent-forwarding
310Disable
311.Xr ssh-agent 1
Damien Miller15f5b562010-03-03 10:25:21 +1100312forwarding (permitted by default).
Damien Miller0a80ca12010-02-27 07:55:05 +1100313.It Ic no-port-forwarding
Damien Miller15f5b562010-03-03 10:25:21 +1100314Disable port forwarding (permitted by default).
Damien Miller0a80ca12010-02-27 07:55:05 +1100315.It Ic no-pty
Damien Miller15f5b562010-03-03 10:25:21 +1100316Disable PTY allocation (permitted by default).
Damien Miller0a80ca12010-02-27 07:55:05 +1100317.It Ic no-user-rc
318Disable execution of
319.Pa ~/.ssh/rc
320by
Damien Miller15f5b562010-03-03 10:25:21 +1100321.Xr sshd 8
322(permitted by default).
Damien Miller0a80ca12010-02-27 07:55:05 +1100323.It Ic clear
324Clear all enabled permissions.
325This is useful for clearing the default set of permissions so permissions may
326be added individually.
327.It Ic permit-x11-forwarding
328Allows X11 forwarding.
329.It Ic permit-port-forwarding
330Allows port forwarding.
331.It Ic permit-pty
332Allows PTY allocation.
333.It Ic permit-user-rc
334Allows execution of
335.Pa ~/.ssh/rc
336by
337.Xr sshd 8 .
338.It Ic force-command=command
339Forces the execution of
340.Ar command
341instead of any shell or command specified by the user when
342the certificate is used for authentication.
343.It Ic source-address=address_list
344Restrict the source addresses from which the certificate is considered valid
345from.
346The
347.Ar address_list
348is a comma-separated list of one or more address/netmask pairs in CIDR
349format.
350.El
351.Pp
352At present, no constraints are valid for host keys.
Damien Miller265d3092005-03-02 12:05:06 +1100353.It Fl P Ar passphrase
354Provides the (old) passphrase.
Damien Miller32aa1441999-10-29 09:15:49 +1000355.It Fl p
356Requests changing the passphrase of a private key file instead of
Damien Miller450a7a12000-03-26 13:04:51 +1000357creating a new private key.
358The program will prompt for the file
Damien Miller32aa1441999-10-29 09:15:49 +1000359containing the private key, for the old passphrase, and twice for the
360new passphrase.
361.It Fl q
362Silence
363.Nm ssh-keygen .
364Used by
365.Pa /etc/rc
366when creating a new key.
Damien Miller4b42d7f2005-03-01 21:48:35 +1100367.It Fl R Ar hostname
368Removes all keys belonging to
369.Ar hostname
Damien Miller4c9c6fd2005-03-02 12:03:43 +1100370from a
Damien Miller4b42d7f2005-03-01 21:48:35 +1100371.Pa known_hosts
372file.
Damien Miller4c9c6fd2005-03-02 12:03:43 +1100373This option is useful to delete hashed hosts (see the
Damien Miller4b42d7f2005-03-01 21:48:35 +1100374.Fl H
375option above).
Damien Miller265d3092005-03-02 12:05:06 +1100376.It Fl r Ar hostname
377Print the SSHFP fingerprint resource record named
378.Ar hostname
379for the specified public key file.
Darren Tucker019cefe2003-08-02 22:40:07 +1000380.It Fl S Ar start
381Specify start point (in hex) when generating candidate moduli for DH-GEX.
Damien Miller0a80ca12010-02-27 07:55:05 +1100382.It Fl s Ar ca_key
383Certify (sign) a public key using the specified CA key.
384Please see the
385.Sx CERTIFICATES
386section for details.
Darren Tucker019cefe2003-08-02 22:40:07 +1000387.It Fl T Ar output_file
388Test DH group exchange candidate primes (generated using the
389.Fl G
390option) for safety.
Damien Miller265d3092005-03-02 12:05:06 +1100391.It Fl t Ar type
392Specifies the type of key to create.
393The possible values are
394.Dq rsa1
395for protocol version 1 and
396.Dq rsa
397or
398.Dq dsa
399for protocol version 2.
Damien Miller0a80ca12010-02-27 07:55:05 +1100400.It Fl V Ar validity_interval
401Specify a validity interval when signing a certificate.
402A validity interval may consist of a single time, indicating that the
403certificate is valid beginning now and expiring at that time, or may consist
404of two times separated by a colon to indicate an explicit time interval.
405The start time may be specified as a date in YYYYMMDD format, a time
406in YYYYMMDDHHMMSS format or a relative time (to the current time) consisting
407of a minus sign followed by a relative time in the format described in the
408.Sx TIME FORMATS
409section of
410.Xr ssh_config 5 .
411The end time may be specified as a YYYYMMDD date, a YYYYMMDDHHMMSS time or
412a relative time starting with a plus character.
413.Pp
414For example:
415.Dq +52w1d
416(valid from now to 52 weeks and one day from now),
417.Dq -4w:+4w
418(valid from four weeks ago to four weeks from now),
419.Dq 20100101123000:20110101123000
420(valid from 12:30 PM, January 1st, 2010 to 12:30 PM, January 1st, 2011),
421.Dq -1d:20110101
422(valid from yesterday to midnight, January 1st, 2011).
Darren Tucker06930c72003-12-31 11:34:51 +1100423.It Fl v
424Verbose mode.
425Causes
426.Nm
427to print debugging messages about its progress.
428This is helpful for debugging moduli generation.
429Multiple
430.Fl v
431options increase the verbosity.
432The maximum is 3.
Damien Miller265d3092005-03-02 12:05:06 +1100433.It Fl W Ar generator
434Specify desired generator when testing candidate moduli for DH-GEX.
435.It Fl y
436This option will read a private
437OpenSSH format file and print an OpenSSH public key to stdout.
Damien Miller32aa1441999-10-29 09:15:49 +1000438.El
Darren Tucker019cefe2003-08-02 22:40:07 +1000439.Sh MODULI GENERATION
440.Nm
441may be used to generate groups for the Diffie-Hellman Group Exchange
442(DH-GEX) protocol.
443Generating these groups is a two-step process: first, candidate
444primes are generated using a fast, but memory intensive process.
445These candidate primes are then tested for suitability (a CPU-intensive
446process).
447.Pp
448Generation of primes is performed using the
449.Fl G
450option.
451The desired length of the primes may be specified by the
452.Fl b
453option.
454For example:
455.Pp
Damien Miller265d3092005-03-02 12:05:06 +1100456.Dl # ssh-keygen -G moduli-2048.candidates -b 2048
Darren Tucker019cefe2003-08-02 22:40:07 +1000457.Pp
458By default, the search for primes begins at a random point in the
459desired length range.
460This may be overridden using the
461.Fl S
462option, which specifies a different start point (in hex).
463.Pp
464Once a set of candidates have been generated, they must be tested for
465suitability.
466This may be performed using the
467.Fl T
468option.
469In this mode
470.Nm
471will read candidates from standard input (or a file specified using the
472.Fl f
473option).
474For example:
475.Pp
Damien Miller265d3092005-03-02 12:05:06 +1100476.Dl # ssh-keygen -T moduli-2048 -f moduli-2048.candidates
Darren Tucker019cefe2003-08-02 22:40:07 +1000477.Pp
478By default, each candidate will be subjected to 100 primality tests.
479This may be overridden using the
480.Fl a
481option.
482The DH generator value will be chosen automatically for the
483prime under consideration.
484If a specific generator is desired, it may be requested using the
485.Fl W
486option.
Damien Miller265d3092005-03-02 12:05:06 +1100487Valid generator values are 2, 3, and 5.
Darren Tucker019cefe2003-08-02 22:40:07 +1000488.Pp
489Screened DH groups may be installed in
490.Pa /etc/moduli .
491It is important that this file contains moduli of a range of bit lengths and
492that both ends of a connection share common moduli.
Damien Miller0a80ca12010-02-27 07:55:05 +1100493.Sh CERTIFICATES
494.Nm
495supports signing of keys to produce certificates that may be used for
496user or host authentication.
497Certificates consist of a public key, some identity information, zero or
498more principal (user or host) names and an optional set of constraints that
499are signed by a Certification Authority (CA) key.
500Clients or servers may then trust only the CA key and verify its signature
501on a certificate rather than trusting many user/host keys.
502Note that OpenSSH certificates are a different, and much simpler, format to
503the X.509 certificates used in
504.Xr ssl 8 .
505.Pp
506.Nm
507supports two types of certificates: user and host.
508User certificates authenticate users to servers, whereas host certificates
Damien Miller15f5b562010-03-03 10:25:21 +1100509authenticate server hosts to users.
510To generate a user certificate:
Damien Miller0a80ca12010-02-27 07:55:05 +1100511.Pp
512.Dl $ ssh-keygen -s /path/to/ca_key -I key_id /path/to/user_key.pub
513.Pp
514The resultant certificate will be placed in
515.Pa /path/to/user_key_cert.pub .
516A host certificate requires the
517.Fl h
518option:
519.Pp
520.Dl $ ssh-keygen -s /path/to/ca_key -I key_id -h /path/to/host_key.pub
521.Pp
522The host certificate will be output to
523.Pa /path/to/host_key_cert.pub .
524In both cases,
525.Ar key_id
526is a "key identifier" that is logged by the server when the certificate
527is used for authentication.
528.Pp
529Certificates may be limited to be valid for a set of principal (user/host)
530names.
531By default, generated certificates are valid for all users or hosts.
532To generate a certificate for a specified set of principals:
533.Pp
534.Dl $ ssh-keygen -s ca_key -I key_id -n user1,user2 user_key.pub
535.Dl $ ssh-keygen -s ca_key -I key_id -h -n host.domain user_key.pub
536.Pp
537Additional limitations on the validity and use of user certificates may
538be specified through certificate constraints.
539A constrained certificate may disable features of the SSH session, may be
540valid only when presented from particular source addresses or may
541force the use of a specific command.
542For a list of valid certificate constraints, see the documentation for the
543.Fl O
544option above.
545.Pp
546Finally, certificates may be defined with a validity lifetime.
547The
548.Fl V
549option allows specification of certificate start and end times.
550A certificate that is presented at a time outside this range will not be
551considered valid.
552By default, certificates have a maximum validity interval.
553.Pp
554For certificates to be used for user or host authentication, the CA
555public key must be trusted by
556.Xr sshd 8
557or
558.Xr ssh 1 .
559Please refer to those manual pages for details.
Damien Miller32aa1441999-10-29 09:15:49 +1000560.Sh FILES
561.Bl -tag -width Ds
Damien Miller167ea5d2005-05-26 12:04:02 +1000562.It Pa ~/.ssh/identity
Ben Lindstrom18a82ac2001-04-11 15:59:35 +0000563Contains the protocol version 1 RSA authentication identity of the user.
Damien Miller450a7a12000-03-26 13:04:51 +1000564This file should not be readable by anyone but the user.
565It is possible to
Damien Miller32aa1441999-10-29 09:15:49 +1000566specify a passphrase when generating the key; that passphrase will be
Darren Tucker199ee6f2009-10-24 11:50:17 +1100567used to encrypt the private part of this file using 128-bit AES.
Damien Miller450a7a12000-03-26 13:04:51 +1000568This file is not automatically accessed by
Damien Miller32aa1441999-10-29 09:15:49 +1000569.Nm
570but it is offered as the default file for the private key.
Ben Lindstrombda98b02001-07-04 03:35:24 +0000571.Xr ssh 1
Damien Millere247cc42000-05-07 12:03:14 +1000572will read this file when a login attempt is made.
Damien Miller167ea5d2005-05-26 12:04:02 +1000573.It Pa ~/.ssh/identity.pub
Ben Lindstrom18a82ac2001-04-11 15:59:35 +0000574Contains the protocol version 1 RSA public key for authentication.
Damien Miller450a7a12000-03-26 13:04:51 +1000575The contents of this file should be added to
Damien Miller167ea5d2005-05-26 12:04:02 +1000576.Pa ~/.ssh/authorized_keys
Damien Miller32aa1441999-10-29 09:15:49 +1000577on all machines
Ben Lindstrom594e2032001-09-12 18:35:30 +0000578where the user wishes to log in using RSA authentication.
Damien Miller450a7a12000-03-26 13:04:51 +1000579There is no need to keep the contents of this file secret.
Damien Miller167ea5d2005-05-26 12:04:02 +1000580.It Pa ~/.ssh/id_dsa
Ben Lindstrom18a82ac2001-04-11 15:59:35 +0000581Contains the protocol version 2 DSA authentication identity of the user.
Damien Millere247cc42000-05-07 12:03:14 +1000582This file should not be readable by anyone but the user.
583It is possible to
584specify a passphrase when generating the key; that passphrase will be
Darren Tucker199ee6f2009-10-24 11:50:17 +1100585used to encrypt the private part of this file using 128-bit AES.
Damien Millere247cc42000-05-07 12:03:14 +1000586This file is not automatically accessed by
587.Nm
588but it is offered as the default file for the private key.
Ben Lindstrombda98b02001-07-04 03:35:24 +0000589.Xr ssh 1
Damien Millere247cc42000-05-07 12:03:14 +1000590will read this file when a login attempt is made.
Damien Miller167ea5d2005-05-26 12:04:02 +1000591.It Pa ~/.ssh/id_dsa.pub
Ben Lindstrom18a82ac2001-04-11 15:59:35 +0000592Contains the protocol version 2 DSA public key for authentication.
593The contents of this file should be added to
Damien Miller167ea5d2005-05-26 12:04:02 +1000594.Pa ~/.ssh/authorized_keys
Ben Lindstrom18a82ac2001-04-11 15:59:35 +0000595on all machines
Ben Lindstrom594e2032001-09-12 18:35:30 +0000596where the user wishes to log in using public key authentication.
Ben Lindstrom18a82ac2001-04-11 15:59:35 +0000597There is no need to keep the contents of this file secret.
Damien Miller167ea5d2005-05-26 12:04:02 +1000598.It Pa ~/.ssh/id_rsa
Ben Lindstrom18a82ac2001-04-11 15:59:35 +0000599Contains the protocol version 2 RSA authentication identity of the user.
600This file should not be readable by anyone but the user.
601It is possible to
602specify a passphrase when generating the key; that passphrase will be
Darren Tucker199ee6f2009-10-24 11:50:17 +1100603used to encrypt the private part of this file using 128-bit AES.
Ben Lindstrom18a82ac2001-04-11 15:59:35 +0000604This file is not automatically accessed by
605.Nm
606but it is offered as the default file for the private key.
Ben Lindstrombda98b02001-07-04 03:35:24 +0000607.Xr ssh 1
Ben Lindstrom18a82ac2001-04-11 15:59:35 +0000608will read this file when a login attempt is made.
Damien Miller167ea5d2005-05-26 12:04:02 +1000609.It Pa ~/.ssh/id_rsa.pub
Ben Lindstrom18a82ac2001-04-11 15:59:35 +0000610Contains the protocol version 2 RSA public key for authentication.
Damien Millere247cc42000-05-07 12:03:14 +1000611The contents of this file should be added to
Damien Miller167ea5d2005-05-26 12:04:02 +1000612.Pa ~/.ssh/authorized_keys
Damien Millere247cc42000-05-07 12:03:14 +1000613on all machines
Ben Lindstrom594e2032001-09-12 18:35:30 +0000614where the user wishes to log in using public key authentication.
Damien Millere247cc42000-05-07 12:03:14 +1000615There is no need to keep the contents of this file secret.
Darren Tucker019cefe2003-08-02 22:40:07 +1000616.It Pa /etc/moduli
617Contains Diffie-Hellman groups used for DH-GEX.
618The file format is described in
619.Xr moduli 5 .
Damien Miller37023962000-07-11 17:31:38 +1000620.El
Damien Miller32aa1441999-10-29 09:15:49 +1000621.Sh SEE ALSO
622.Xr ssh 1 ,
623.Xr ssh-add 1 ,
Damien Miller2e8b1c81999-11-15 23:33:56 +1100624.Xr ssh-agent 1 ,
Darren Tucker019cefe2003-08-02 22:40:07 +1000625.Xr moduli 5 ,
Ben Lindstrom77788dc2001-02-10 23:10:33 +0000626.Xr sshd 8
Ben Lindstrom5a707822001-04-22 17:15:46 +0000627.Rs
Damien Millerc0367fb2007-01-05 16:25:46 +1100628.%R RFC 4716
629.%T "The Secure Shell (SSH) Public Key File Format"
630.%D 2006
Ben Lindstrom5a707822001-04-22 17:15:46 +0000631.Re
Damien Millerf1ce5052003-06-11 22:04:39 +1000632.Sh AUTHORS
633OpenSSH is a derivative of the original and free
634ssh 1.2.12 release by Tatu Ylonen.
635Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos,
636Theo de Raadt and Dug Song
637removed many bugs, re-added newer features and
638created OpenSSH.
639Markus Friedl contributed the support for SSH
640protocol versions 1.5 and 2.0.