blob: 9acd8f8c92881cd4ca24d12a0a4717acabd438af [file] [log] [blame]
Damien Miller757f34e2010-08-05 13:05:31 +10001.\" $OpenBSD: ssh-keygen.1,v 1.98 2010/08/04 06:07:11 djm 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 Miller757f34e2010-08-05 13:05:31 +100040.Dd $Mdocdate: August 4 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
Damien Miller495dca32003-04-01 21:42:14 +100047.Bk -words
Damien Millerbad5e032010-07-16 13:59:59 +100048.Nm ssh-keygen
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 Miller32aa1441999-10-29 09:15:49 +100055.Nm ssh-keygen
56.Fl p
57.Op Fl P Ar old_passphrase
58.Op Fl N Ar new_passphrase
Damien Miller10f6f6b1999-11-17 17:29:08 +110059.Op Fl f Ar keyfile
Damien Miller32aa1441999-10-29 09:15:49 +100060.Nm ssh-keygen
Ben Lindstrom5a707822001-04-22 17:15:46 +000061.Fl i
Damien Miller44b25042010-07-02 13:35:01 +100062.Op Fl m Ar key_format
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 Miller44b25042010-07-02 13:35:01 +100066.Op Fl m Ar key_format
Damien Miller1a425f32000-09-02 10:08:09 +110067.Op Fl f Ar input_keyfile
Damien Millere247cc42000-05-07 12:03:14 +100068.Nm ssh-keygen
69.Fl y
Damien Miller1a425f32000-09-02 10:08:09 +110070.Op Fl f Ar input_keyfile
Damien Millere247cc42000-05-07 12:03:14 +100071.Nm ssh-keygen
Damien Miller32aa1441999-10-29 09:15:49 +100072.Fl c
73.Op Fl P Ar passphrase
74.Op Fl C Ar comment
Damien Miller10f6f6b1999-11-17 17:29:08 +110075.Op Fl f Ar keyfile
76.Nm ssh-keygen
77.Fl l
Ben Lindstrom8fd372b2001-03-12 03:02:17 +000078.Op Fl f Ar input_keyfile
79.Nm ssh-keygen
80.Fl B
Damien Miller1a425f32000-09-02 10:08:09 +110081.Op Fl f Ar input_keyfile
Ben Lindstroma1ec4a92001-08-06 21:51:34 +000082.Nm ssh-keygen
Damien Miller048dc932010-02-12 09:22:04 +110083.Fl D Ar pkcs11
Ben Lindstroma1ec4a92001-08-06 21:51:34 +000084.Nm ssh-keygen
Damien Miller4b42d7f2005-03-01 21:48:35 +110085.Fl F Ar hostname
86.Op Fl f Ar known_hosts_file
Damien Miller718ed502008-11-03 19:15:20 +110087.Op Fl l
Damien Miller4b42d7f2005-03-01 21:48:35 +110088.Nm ssh-keygen
89.Fl H
90.Op Fl f Ar known_hosts_file
91.Nm ssh-keygen
92.Fl R Ar hostname
93.Op Fl f Ar known_hosts_file
94.Nm ssh-keygen
Damien Miller37876e92003-05-15 10:19:46 +100095.Fl r Ar hostname
96.Op Fl f Ar input_keyfile
97.Op Fl g
Darren Tucker019cefe2003-08-02 22:40:07 +100098.Nm ssh-keygen
99.Fl G Ar output_file
Darren Tucker06930c72003-12-31 11:34:51 +1100100.Op Fl v
Darren Tucker019cefe2003-08-02 22:40:07 +1000101.Op Fl b Ar bits
102.Op Fl M Ar memory
103.Op Fl S Ar start_point
104.Nm ssh-keygen
105.Fl T Ar output_file
106.Fl f Ar input_file
Darren Tucker06930c72003-12-31 11:34:51 +1100107.Op Fl v
Darren Tucker019cefe2003-08-02 22:40:07 +1000108.Op Fl a Ar num_trials
109.Op Fl W Ar generator
Damien Miller0a80ca12010-02-27 07:55:05 +1100110.Nm ssh-keygen
111.Fl s Ar ca_key
112.Fl I Ar certificate_identity
113.Op Fl h
114.Op Fl n Ar principals
Damien Miller4e270b02010-04-16 15:56:21 +1000115.Op Fl O Ar option
Damien Miller0a80ca12010-02-27 07:55:05 +1100116.Op Fl V Ar validity_interval
Damien Miller4e270b02010-04-16 15:56:21 +1000117.Op Fl z Ar serial_number
Damien Miller0a80ca12010-02-27 07:55:05 +1100118.Ar
Damien Millerf2b70ca2010-03-05 07:39:35 +1100119.Nm ssh-keygen
Damien Millerf2b70ca2010-03-05 07:39:35 +1100120.Fl L
121.Op Fl f Ar input_keyfile
Damien Miller15f5b562010-03-03 10:25:21 +1100122.Ek
Damien Miller22c77262000-04-13 12:26:34 +1000123.Sh DESCRIPTION
Damien Miller32aa1441999-10-29 09:15:49 +1000124.Nm
Ben Lindstrom5a707822001-04-22 17:15:46 +0000125generates, manages and converts authentication keys for
Damien Miller32aa1441999-10-29 09:15:49 +1000126.Xr ssh 1 .
Damien Millere247cc42000-05-07 12:03:14 +1000127.Nm
Ben Lindstromcb72e4f2002-06-21 00:41:51 +0000128can create RSA keys for use by SSH protocol version 1 and RSA or DSA
Damien Millerfbf486b2003-05-23 18:44:23 +1000129keys for use by SSH protocol version 2.
130The type of key to be generated is specified with the
Damien Miller0bc1bd82000-11-13 22:57:25 +1100131.Fl t
Damien Millera41c8b12002-01-22 23:05:08 +1100132option.
Damien Millerf14be5c2005-11-05 15:15:49 +1100133If invoked without any arguments,
134.Nm
Damien Miller83d0d392005-11-05 15:16:27 +1100135will generate an RSA key for use in SSH protocol 2 connections.
Damien Millere247cc42000-05-07 12:03:14 +1000136.Pp
Darren Tucker019cefe2003-08-02 22:40:07 +1000137.Nm
138is also used to generate groups for use in Diffie-Hellman group
139exchange (DH-GEX).
140See the
141.Sx MODULI GENERATION
142section for details.
143.Pp
Damien Miller32aa1441999-10-29 09:15:49 +1000144Normally each user wishing to use SSH
Damien Millere247cc42000-05-07 12:03:14 +1000145with RSA or DSA authentication runs this once to create the authentication
Damien Miller32aa1441999-10-29 09:15:49 +1000146key in
Damien Miller167ea5d2005-05-26 12:04:02 +1000147.Pa ~/.ssh/identity ,
148.Pa ~/.ssh/id_dsa
Damien Millere247cc42000-05-07 12:03:14 +1000149or
Damien Miller167ea5d2005-05-26 12:04:02 +1000150.Pa ~/.ssh/id_rsa .
Damien Millere247cc42000-05-07 12:03:14 +1000151Additionally, the system administrator may use this to generate host keys,
152as seen in
153.Pa /etc/rc .
Damien Miller32aa1441999-10-29 09:15:49 +1000154.Pp
155Normally this program generates the key and asks for a file in which
Damien Miller450a7a12000-03-26 13:04:51 +1000156to store the private key.
157The public key is stored in a file with the same name but
Damien Miller32aa1441999-10-29 09:15:49 +1000158.Dq .pub
Damien Miller450a7a12000-03-26 13:04:51 +1000159appended.
160The program also asks for a passphrase.
161The passphrase may be empty to indicate no passphrase
Ben Lindstrombf555ba2001-01-18 02:04:35 +0000162(host keys must have an empty passphrase), or it may be a string of
Damien Miller450a7a12000-03-26 13:04:51 +1000163arbitrary length.
Ben Lindstrom4e366d52001-12-06 16:43:21 +0000164A passphrase is similar to a password, except it can be a phrase with a
165series of words, punctuation, numbers, whitespace, or any string of
166characters you want.
167Good passphrases are 10-30 characters long, are
Damien Miller32aa1441999-10-29 09:15:49 +1000168not simple sentences or otherwise easily guessable (English
Ben Lindstrom2a097a42001-06-09 01:13:40 +0000169prose has only 1-2 bits of entropy per character, and provides very bad
Ben Lindstrom4e366d52001-12-06 16:43:21 +0000170passphrases), and contain a mix of upper and lowercase letters,
171numbers, and non-alphanumeric characters.
Damien Miller450a7a12000-03-26 13:04:51 +1000172The passphrase can be changed later by using the
Damien Miller32aa1441999-10-29 09:15:49 +1000173.Fl p
174option.
175.Pp
Damien Miller450a7a12000-03-26 13:04:51 +1000176There is no way to recover a lost passphrase.
177If the passphrase is
Ben Lindstrom594e2032001-09-12 18:35:30 +0000178lost or forgotten, a new key must be generated and copied to the
Damien Miller32aa1441999-10-29 09:15:49 +1000179corresponding public key to other machines.
180.Pp
Ben Lindstrom5a707822001-04-22 17:15:46 +0000181For RSA1 keys,
182there is also a comment field in the key file that is only for
Damien Miller450a7a12000-03-26 13:04:51 +1000183convenience to the user to help identify the key.
184The comment can tell what the key is for, or whatever is useful.
185The comment is initialized to
Damien Miller32aa1441999-10-29 09:15:49 +1000186.Dq user@host
187when the key is created, but can be changed using the
188.Fl c
189option.
190.Pp
Damien Millere247cc42000-05-07 12:03:14 +1000191After a key is generated, instructions below detail where the keys
192should be placed to be activated.
193.Pp
Damien Miller32aa1441999-10-29 09:15:49 +1000194The options are as follows:
195.Bl -tag -width Ds
Darren Tucker019cefe2003-08-02 22:40:07 +1000196.It Fl a Ar trials
197Specifies the number of primality tests to perform when screening DH-GEX
198candidates using the
199.Fl T
200command.
Damien Miller265d3092005-03-02 12:05:06 +1100201.It Fl B
202Show the bubblebabble digest of specified private or public key file.
Damien Miller32aa1441999-10-29 09:15:49 +1000203.It Fl b Ar bits
Damien Miller450a7a12000-03-26 13:04:51 +1000204Specifies the number of bits in the key to create.
Darren Tucker9f647332005-11-28 16:41:46 +1100205For RSA keys, the minimum size is 768 bits and the default is 2048 bits.
Damien Millerac7ef6a2005-06-16 13:19:06 +1000206Generally, 2048 bits is considered sufficient.
Darren Tucker9f647332005-11-28 16:41:46 +1100207DSA keys must be exactly 1024 bits as specified by FIPS 186-2.
Damien Miller265d3092005-03-02 12:05:06 +1100208.It Fl C Ar comment
209Provides a new comment.
Damien Miller32aa1441999-10-29 09:15:49 +1000210.It Fl c
211Requests changing the comment in the private and public key files.
Damien Millereb5fec62001-11-12 10:52:44 +1100212This operation is only supported for RSA1 keys.
Damien Miller32aa1441999-10-29 09:15:49 +1000213The program will prompt for the file containing the private keys, for
Ben Lindstromaafff9c2001-05-06 03:01:02 +0000214the passphrase if the key has one, and for the new comment.
Damien Miller7ea845e2010-02-12 09:21:02 +1100215.It Fl D Ar pkcs11
Damien Millera7618442010-02-12 09:26:02 +1100216Download the RSA public keys provided by the PKCS#11 shared library
217.Ar pkcs11 .
Damien Miller757f34e2010-08-05 13:05:31 +1000218When used in combination with
219.Fl s ,
220this option indicates that a CA key resides in a PKCS#11 token (see the
221.Sx CERTIFICATES
222section for details).
Ben Lindstrom5a707822001-04-22 17:15:46 +0000223.It Fl e
Ben Lindstrom46c264f2001-04-24 16:56:58 +0000224This option will read a private or public OpenSSH key file and
Damien Miller44b25042010-07-02 13:35:01 +1000225print to stdout the key in one of the formats specified by the
226.Fl m
227option.
228The default export format is
229.Dq RFC4716 .
Damien Millerea727282010-07-02 13:35:34 +1000230This option allows exporting OpenSSH keys for use by other programs, including
Damien Miller44b25042010-07-02 13:35:01 +1000231several commercial SSH implementations.
Damien Miller265d3092005-03-02 12:05:06 +1100232.It Fl F Ar hostname
233Search for the specified
234.Ar hostname
235in a
236.Pa known_hosts
237file, listing any occurrences found.
238This option is useful to find hashed host names or addresses and may also be
239used in conjunction with the
240.Fl H
241option to print found keys in a hashed format.
242.It Fl f Ar filename
243Specifies the filename of the key file.
244.It Fl G Ar output_file
245Generate candidate primes for DH-GEX.
246These primes must be screened for
247safety (using the
248.Fl T
249option) before use.
Damien Miller37876e92003-05-15 10:19:46 +1000250.It Fl g
Darren Tucker0b42e6d2004-08-13 21:22:40 +1000251Use generic DNS format when printing fingerprint resource records using the
Darren Tucker6e370372004-08-13 21:23:25 +1000252.Fl r
Darren Tucker0b42e6d2004-08-13 21:22:40 +1000253command.
Damien Miller265d3092005-03-02 12:05:06 +1100254.It Fl H
255Hash a
256.Pa known_hosts
Darren Tuckerda1adbc2005-03-14 23:15:58 +1100257file.
258This replaces all hostnames and addresses with hashed representations
259within the specified file; the original content is moved to a file with
260a .old suffix.
Damien Miller265d3092005-03-02 12:05:06 +1100261These hashes may be used normally by
262.Nm ssh
263and
264.Nm sshd ,
265but they do not reveal identifying information should the file's contents
266be disclosed.
267This option will not modify existing hashed hostnames and is therefore safe
268to use on files that mix hashed and non-hashed names.
Damien Miller0a80ca12010-02-27 07:55:05 +1100269.It Fl h
270When signing a key, create a host certificate instead of a user
271certificate.
272Please see the
273.Sx CERTIFICATES
274section for details.
Damien Miller15f5b562010-03-03 10:25:21 +1100275.It Fl I Ar certificate_identity
Damien Miller0a80ca12010-02-27 07:55:05 +1100276Specify the key identity when signing a public key.
277Please see the
278.Sx CERTIFICATES
279section for details.
Ben Lindstrom5a707822001-04-22 17:15:46 +0000280.It Fl i
281This option will read an unencrypted private (or public) key file
Damien Miller44b25042010-07-02 13:35:01 +1000282in the format specified by the
283.Fl m
284option and print an OpenSSH compatible private
Ben Lindstrom5a707822001-04-22 17:15:46 +0000285(or public) key to stdout.
Damien Miller44b25042010-07-02 13:35:01 +1000286This option allows importing keys from other software, including several
287commercial SSH implementations.
288The default import format is
289.Dq RFC4716 .
Damien Millerf2b70ca2010-03-05 07:39:35 +1100290.It Fl L
291Prints the contents of a certificate.
Damien Miller10f6f6b1999-11-17 17:29:08 +1100292.It Fl l
Darren Tucker35c45532008-06-13 04:43:15 +1000293Show fingerprint of specified public key file.
Damien Millereb5fec62001-11-12 10:52:44 +1100294Private RSA1 keys are also supported.
295For RSA and DSA keys
296.Nm
Darren Tuckerf09e8252008-06-13 05:18:03 +1000297tries to find the matching public key file and prints its fingerprint.
298If combined with
299.Fl v ,
300an ASCII art representation of the key is supplied with the fingerprint.
Damien Millerea727282010-07-02 13:35:34 +1000301.It Fl M Ar memory
302Specify the amount of memory to use (in megabytes) when generating
303candidate moduli for DH-GEX.
Damien Miller44b25042010-07-02 13:35:01 +1000304.It Fl m Ar key_format
305Specify a key format for the
306.Fl i
307(import) or
308.Fl e
Damien Millerea727282010-07-02 13:35:34 +1000309(export) conversion options.
Damien Miller44b25042010-07-02 13:35:01 +1000310The supported key formats are:
311.Dq RFC4716
Damien Millerea727282010-07-02 13:35:34 +1000312(RFC 4716/SSH2 public or private key),
Damien Miller44b25042010-07-02 13:35:01 +1000313.Dq PKCS8
314(PEM PKCS8 public key)
315or
316.Dq PEM
317(PEM public key).
318The default conversion format is
319.Dq RFC4716 .
Damien Miller265d3092005-03-02 12:05:06 +1100320.It Fl N Ar new_passphrase
321Provides the new passphrase.
Damien Miller0a80ca12010-02-27 07:55:05 +1100322.It Fl n Ar principals
323Specify one or more principals (user or host names) to be included in
324a certificate when signing a key.
325Multiple principals may be specified, separated by commas.
326Please see the
327.Sx CERTIFICATES
328section for details.
Damien Miller4e270b02010-04-16 15:56:21 +1000329.It Fl O Ar option
330Specify a certificate option when signing a key.
Damien Miller0a80ca12010-02-27 07:55:05 +1100331This option may be specified multiple times.
332Please see the
333.Sx CERTIFICATES
334section for details.
Damien Miller4e270b02010-04-16 15:56:21 +1000335The options that are valid for user certificates are:
Damien Miller0a80ca12010-02-27 07:55:05 +1100336.Bl -tag -width Ds
Damien Millerc59e2442010-03-22 05:50:31 +1100337.It Ic clear
338Clear all enabled permissions.
339This is useful for clearing the default set of permissions so permissions may
340be added individually.
341.It Ic force-command Ns = Ns Ar command
342Forces the execution of
343.Ar command
344instead of any shell or command specified by the user when
345the certificate is used for authentication.
Damien Miller0a80ca12010-02-27 07:55:05 +1100346.It Ic no-agent-forwarding
347Disable
348.Xr ssh-agent 1
Damien Miller15f5b562010-03-03 10:25:21 +1100349forwarding (permitted by default).
Damien Miller0a80ca12010-02-27 07:55:05 +1100350.It Ic no-port-forwarding
Damien Miller15f5b562010-03-03 10:25:21 +1100351Disable port forwarding (permitted by default).
Damien Miller0a80ca12010-02-27 07:55:05 +1100352.It Ic no-pty
Damien Miller15f5b562010-03-03 10:25:21 +1100353Disable PTY allocation (permitted by default).
Damien Miller0a80ca12010-02-27 07:55:05 +1100354.It Ic no-user-rc
355Disable execution of
356.Pa ~/.ssh/rc
357by
Damien Miller15f5b562010-03-03 10:25:21 +1100358.Xr sshd 8
359(permitted by default).
Damien Millerc59e2442010-03-22 05:50:31 +1100360.It Ic no-x11-forwarding
361Disable X11 forwarding (permitted by default).
Damien Miller081c9762010-03-08 11:30:00 +1100362.It Ic permit-agent-forwarding
363Allows
364.Xr ssh-agent 1
365forwarding.
Damien Miller0a80ca12010-02-27 07:55:05 +1100366.It Ic permit-port-forwarding
367Allows port forwarding.
368.It Ic permit-pty
369Allows PTY allocation.
370.It Ic permit-user-rc
371Allows execution of
372.Pa ~/.ssh/rc
373by
374.Xr sshd 8 .
Damien Millerc59e2442010-03-22 05:50:31 +1100375.It Ic permit-x11-forwarding
376Allows X11 forwarding.
377.It Ic source-address Ns = Ns Ar address_list
Damien Miller77497e12010-03-22 05:50:51 +1100378Restrict the source addresses from which the certificate is considered valid.
Damien Miller0a80ca12010-02-27 07:55:05 +1100379The
380.Ar address_list
381is a comma-separated list of one or more address/netmask pairs in CIDR
382format.
383.El
384.Pp
Damien Miller4e270b02010-04-16 15:56:21 +1000385At present, no options are valid for host keys.
Damien Miller265d3092005-03-02 12:05:06 +1100386.It Fl P Ar passphrase
387Provides the (old) passphrase.
Damien Miller32aa1441999-10-29 09:15:49 +1000388.It Fl p
389Requests changing the passphrase of a private key file instead of
Damien Miller450a7a12000-03-26 13:04:51 +1000390creating a new private key.
391The program will prompt for the file
Damien Miller32aa1441999-10-29 09:15:49 +1000392containing the private key, for the old passphrase, and twice for the
393new passphrase.
394.It Fl q
395Silence
396.Nm ssh-keygen .
397Used by
398.Pa /etc/rc
399when creating a new key.
Damien Miller4b42d7f2005-03-01 21:48:35 +1100400.It Fl R Ar hostname
401Removes all keys belonging to
402.Ar hostname
Damien Miller4c9c6fd2005-03-02 12:03:43 +1100403from a
Damien Miller4b42d7f2005-03-01 21:48:35 +1100404.Pa known_hosts
405file.
Damien Miller4c9c6fd2005-03-02 12:03:43 +1100406This option is useful to delete hashed hosts (see the
Damien Miller4b42d7f2005-03-01 21:48:35 +1100407.Fl H
408option above).
Damien Miller265d3092005-03-02 12:05:06 +1100409.It Fl r Ar hostname
410Print the SSHFP fingerprint resource record named
411.Ar hostname
412for the specified public key file.
Darren Tucker019cefe2003-08-02 22:40:07 +1000413.It Fl S Ar start
414Specify start point (in hex) when generating candidate moduli for DH-GEX.
Damien Miller0a80ca12010-02-27 07:55:05 +1100415.It Fl s Ar ca_key
416Certify (sign) a public key using the specified CA key.
417Please see the
418.Sx CERTIFICATES
419section for details.
Darren Tucker019cefe2003-08-02 22:40:07 +1000420.It Fl T Ar output_file
421Test DH group exchange candidate primes (generated using the
422.Fl G
423option) for safety.
Damien Miller265d3092005-03-02 12:05:06 +1100424.It Fl t Ar type
425Specifies the type of key to create.
426The possible values are
427.Dq rsa1
428for protocol version 1 and
429.Dq rsa
430or
431.Dq dsa
432for protocol version 2.
Damien Miller0a80ca12010-02-27 07:55:05 +1100433.It Fl V Ar validity_interval
434Specify a validity interval when signing a certificate.
435A validity interval may consist of a single time, indicating that the
436certificate is valid beginning now and expiring at that time, or may consist
437of two times separated by a colon to indicate an explicit time interval.
438The start time may be specified as a date in YYYYMMDD format, a time
439in YYYYMMDDHHMMSS format or a relative time (to the current time) consisting
440of a minus sign followed by a relative time in the format described in the
441.Sx TIME FORMATS
442section of
Damien Miller77497e12010-03-22 05:50:51 +1100443.Xr sshd_config 5 .
Damien Miller0a80ca12010-02-27 07:55:05 +1100444The end time may be specified as a YYYYMMDD date, a YYYYMMDDHHMMSS time or
445a relative time starting with a plus character.
446.Pp
447For example:
448.Dq +52w1d
449(valid from now to 52 weeks and one day from now),
450.Dq -4w:+4w
451(valid from four weeks ago to four weeks from now),
452.Dq 20100101123000:20110101123000
453(valid from 12:30 PM, January 1st, 2010 to 12:30 PM, January 1st, 2011),
454.Dq -1d:20110101
455(valid from yesterday to midnight, January 1st, 2011).
Darren Tucker06930c72003-12-31 11:34:51 +1100456.It Fl v
457Verbose mode.
458Causes
459.Nm
460to print debugging messages about its progress.
461This is helpful for debugging moduli generation.
462Multiple
463.Fl v
464options increase the verbosity.
465The maximum is 3.
Damien Miller265d3092005-03-02 12:05:06 +1100466.It Fl W Ar generator
467Specify desired generator when testing candidate moduli for DH-GEX.
468.It Fl y
469This option will read a private
470OpenSSH format file and print an OpenSSH public key to stdout.
Damien Miller4e270b02010-04-16 15:56:21 +1000471.It Fl z Ar serial_number
472Specifies a serial number to be embedded in the certificate to distinguish
473this certificate from others from the same CA.
474The default serial number is zero.
Damien Miller32aa1441999-10-29 09:15:49 +1000475.El
Darren Tucker019cefe2003-08-02 22:40:07 +1000476.Sh MODULI GENERATION
477.Nm
478may be used to generate groups for the Diffie-Hellman Group Exchange
479(DH-GEX) protocol.
480Generating these groups is a two-step process: first, candidate
481primes are generated using a fast, but memory intensive process.
482These candidate primes are then tested for suitability (a CPU-intensive
483process).
484.Pp
485Generation of primes is performed using the
486.Fl G
487option.
488The desired length of the primes may be specified by the
489.Fl b
490option.
491For example:
492.Pp
Damien Miller265d3092005-03-02 12:05:06 +1100493.Dl # ssh-keygen -G moduli-2048.candidates -b 2048
Darren Tucker019cefe2003-08-02 22:40:07 +1000494.Pp
495By default, the search for primes begins at a random point in the
496desired length range.
497This may be overridden using the
498.Fl S
499option, which specifies a different start point (in hex).
500.Pp
501Once a set of candidates have been generated, they must be tested for
502suitability.
503This may be performed using the
504.Fl T
505option.
506In this mode
507.Nm
508will read candidates from standard input (or a file specified using the
509.Fl f
510option).
511For example:
512.Pp
Damien Miller265d3092005-03-02 12:05:06 +1100513.Dl # ssh-keygen -T moduli-2048 -f moduli-2048.candidates
Darren Tucker019cefe2003-08-02 22:40:07 +1000514.Pp
515By default, each candidate will be subjected to 100 primality tests.
516This may be overridden using the
517.Fl a
518option.
519The DH generator value will be chosen automatically for the
520prime under consideration.
521If a specific generator is desired, it may be requested using the
522.Fl W
523option.
Damien Miller265d3092005-03-02 12:05:06 +1100524Valid generator values are 2, 3, and 5.
Darren Tucker019cefe2003-08-02 22:40:07 +1000525.Pp
526Screened DH groups may be installed in
527.Pa /etc/moduli .
528It is important that this file contains moduli of a range of bit lengths and
529that both ends of a connection share common moduli.
Damien Miller0a80ca12010-02-27 07:55:05 +1100530.Sh CERTIFICATES
531.Nm
532supports signing of keys to produce certificates that may be used for
533user or host authentication.
534Certificates consist of a public key, some identity information, zero or
Damien Miller1f181422010-04-18 08:08:03 +1000535more principal (user or host) names and a set of options that
Damien Miller0a80ca12010-02-27 07:55:05 +1100536are signed by a Certification Authority (CA) key.
537Clients or servers may then trust only the CA key and verify its signature
538on a certificate rather than trusting many user/host keys.
539Note that OpenSSH certificates are a different, and much simpler, format to
540the X.509 certificates used in
541.Xr ssl 8 .
542.Pp
543.Nm
544supports two types of certificates: user and host.
545User certificates authenticate users to servers, whereas host certificates
Damien Miller15f5b562010-03-03 10:25:21 +1100546authenticate server hosts to users.
547To generate a user certificate:
Damien Miller0a80ca12010-02-27 07:55:05 +1100548.Pp
549.Dl $ ssh-keygen -s /path/to/ca_key -I key_id /path/to/user_key.pub
550.Pp
551The resultant certificate will be placed in
Damien Miller1b61a282010-03-22 05:55:06 +1100552.Pa /path/to/user_key-cert.pub .
Damien Miller0a80ca12010-02-27 07:55:05 +1100553A host certificate requires the
554.Fl h
555option:
556.Pp
557.Dl $ ssh-keygen -s /path/to/ca_key -I key_id -h /path/to/host_key.pub
558.Pp
559The host certificate will be output to
Damien Miller1b61a282010-03-22 05:55:06 +1100560.Pa /path/to/host_key-cert.pub .
Damien Miller757f34e2010-08-05 13:05:31 +1000561.Pp
562It is possible to sign using a CA key stored in a PKCS#11 token by
563providing the token library using
564.Fl D
565and identifying the CA key by providing its public half as an argument
566to
567.Fl s :
568.Pp
569.Dl $ ssh-keygen -s ca_key.pub -D libpkcs11.so -I key_id host_key.pub
570.Pp
571In all cases,
Damien Miller0a80ca12010-02-27 07:55:05 +1100572.Ar key_id
573is a "key identifier" that is logged by the server when the certificate
574is used for authentication.
575.Pp
576Certificates may be limited to be valid for a set of principal (user/host)
577names.
578By default, generated certificates are valid for all users or hosts.
579To generate a certificate for a specified set of principals:
580.Pp
581.Dl $ ssh-keygen -s ca_key -I key_id -n user1,user2 user_key.pub
Damien Miller5a5d94b2010-03-22 05:57:49 +1100582.Dl "$ ssh-keygen -s ca_key -I key_id -h -n host.domain user_key.pub"
Damien Miller0a80ca12010-02-27 07:55:05 +1100583.Pp
584Additional limitations on the validity and use of user certificates may
Damien Miller1f181422010-04-18 08:08:03 +1000585be specified through certificate options.
Damien Miller4e270b02010-04-16 15:56:21 +1000586A certificate option may disable features of the SSH session, may be
Damien Miller0a80ca12010-02-27 07:55:05 +1100587valid only when presented from particular source addresses or may
588force the use of a specific command.
Damien Miller4e270b02010-04-16 15:56:21 +1000589For a list of valid certificate options, see the documentation for the
Damien Miller0a80ca12010-02-27 07:55:05 +1100590.Fl O
591option above.
592.Pp
593Finally, certificates may be defined with a validity lifetime.
594The
595.Fl V
596option allows specification of certificate start and end times.
597A certificate that is presented at a time outside this range will not be
598considered valid.
599By default, certificates have a maximum validity interval.
600.Pp
601For certificates to be used for user or host authentication, the CA
602public key must be trusted by
603.Xr sshd 8
604or
605.Xr ssh 1 .
606Please refer to those manual pages for details.
Damien Miller32aa1441999-10-29 09:15:49 +1000607.Sh FILES
608.Bl -tag -width Ds
Damien Miller167ea5d2005-05-26 12:04:02 +1000609.It Pa ~/.ssh/identity
Ben Lindstrom18a82ac2001-04-11 15:59:35 +0000610Contains the protocol version 1 RSA authentication identity of the user.
Damien Miller450a7a12000-03-26 13:04:51 +1000611This file should not be readable by anyone but the user.
612It is possible to
Damien Miller32aa1441999-10-29 09:15:49 +1000613specify a passphrase when generating the key; that passphrase will be
Darren Tucker199ee6f2009-10-24 11:50:17 +1100614used to encrypt the private part of this file using 128-bit AES.
Damien Miller450a7a12000-03-26 13:04:51 +1000615This file is not automatically accessed by
Damien Miller32aa1441999-10-29 09:15:49 +1000616.Nm
617but it is offered as the default file for the private key.
Ben Lindstrombda98b02001-07-04 03:35:24 +0000618.Xr ssh 1
Damien Millere247cc42000-05-07 12:03:14 +1000619will read this file when a login attempt is made.
Damien Miller167ea5d2005-05-26 12:04:02 +1000620.It Pa ~/.ssh/identity.pub
Ben Lindstrom18a82ac2001-04-11 15:59:35 +0000621Contains the protocol version 1 RSA public key for authentication.
Damien Miller450a7a12000-03-26 13:04:51 +1000622The contents of this file should be added to
Damien Miller167ea5d2005-05-26 12:04:02 +1000623.Pa ~/.ssh/authorized_keys
Damien Miller32aa1441999-10-29 09:15:49 +1000624on all machines
Ben Lindstrom594e2032001-09-12 18:35:30 +0000625where the user wishes to log in using RSA authentication.
Damien Miller450a7a12000-03-26 13:04:51 +1000626There is no need to keep the contents of this file secret.
Damien Miller167ea5d2005-05-26 12:04:02 +1000627.It Pa ~/.ssh/id_dsa
Ben Lindstrom18a82ac2001-04-11 15:59:35 +0000628Contains the protocol version 2 DSA authentication identity of the user.
Damien Millere247cc42000-05-07 12:03:14 +1000629This file should not be readable by anyone but the user.
630It is possible to
631specify a passphrase when generating the key; that passphrase will be
Darren Tucker199ee6f2009-10-24 11:50:17 +1100632used to encrypt the private part of this file using 128-bit AES.
Damien Millere247cc42000-05-07 12:03:14 +1000633This file is not automatically accessed by
634.Nm
635but it is offered as the default file for the private key.
Ben Lindstrombda98b02001-07-04 03:35:24 +0000636.Xr ssh 1
Damien Millere247cc42000-05-07 12:03:14 +1000637will read this file when a login attempt is made.
Damien Miller167ea5d2005-05-26 12:04:02 +1000638.It Pa ~/.ssh/id_dsa.pub
Ben Lindstrom18a82ac2001-04-11 15:59:35 +0000639Contains the protocol version 2 DSA public key for authentication.
640The contents of this file should be added to
Damien Miller167ea5d2005-05-26 12:04:02 +1000641.Pa ~/.ssh/authorized_keys
Ben Lindstrom18a82ac2001-04-11 15:59:35 +0000642on all machines
Ben Lindstrom594e2032001-09-12 18:35:30 +0000643where the user wishes to log in using public key authentication.
Ben Lindstrom18a82ac2001-04-11 15:59:35 +0000644There is no need to keep the contents of this file secret.
Damien Miller167ea5d2005-05-26 12:04:02 +1000645.It Pa ~/.ssh/id_rsa
Ben Lindstrom18a82ac2001-04-11 15:59:35 +0000646Contains the protocol version 2 RSA authentication identity of the user.
647This file should not be readable by anyone but the user.
648It is possible to
649specify a passphrase when generating the key; that passphrase will be
Darren Tucker199ee6f2009-10-24 11:50:17 +1100650used to encrypt the private part of this file using 128-bit AES.
Ben Lindstrom18a82ac2001-04-11 15:59:35 +0000651This file is not automatically accessed by
652.Nm
653but it is offered as the default file for the private key.
Ben Lindstrombda98b02001-07-04 03:35:24 +0000654.Xr ssh 1
Ben Lindstrom18a82ac2001-04-11 15:59:35 +0000655will read this file when a login attempt is made.
Damien Miller167ea5d2005-05-26 12:04:02 +1000656.It Pa ~/.ssh/id_rsa.pub
Ben Lindstrom18a82ac2001-04-11 15:59:35 +0000657Contains the protocol version 2 RSA public key for authentication.
Damien Millere247cc42000-05-07 12:03:14 +1000658The contents of this file should be added to
Damien Miller167ea5d2005-05-26 12:04:02 +1000659.Pa ~/.ssh/authorized_keys
Damien Millere247cc42000-05-07 12:03:14 +1000660on all machines
Ben Lindstrom594e2032001-09-12 18:35:30 +0000661where the user wishes to log in using public key authentication.
Damien Millere247cc42000-05-07 12:03:14 +1000662There is no need to keep the contents of this file secret.
Darren Tucker019cefe2003-08-02 22:40:07 +1000663.It Pa /etc/moduli
664Contains Diffie-Hellman groups used for DH-GEX.
665The file format is described in
666.Xr moduli 5 .
Damien Miller37023962000-07-11 17:31:38 +1000667.El
Damien Miller32aa1441999-10-29 09:15:49 +1000668.Sh SEE ALSO
669.Xr ssh 1 ,
670.Xr ssh-add 1 ,
Damien Miller2e8b1c81999-11-15 23:33:56 +1100671.Xr ssh-agent 1 ,
Darren Tucker019cefe2003-08-02 22:40:07 +1000672.Xr moduli 5 ,
Ben Lindstrom77788dc2001-02-10 23:10:33 +0000673.Xr sshd 8
Ben Lindstrom5a707822001-04-22 17:15:46 +0000674.Rs
Damien Millerc0367fb2007-01-05 16:25:46 +1100675.%R RFC 4716
676.%T "The Secure Shell (SSH) Public Key File Format"
677.%D 2006
Ben Lindstrom5a707822001-04-22 17:15:46 +0000678.Re
Damien Millerf1ce5052003-06-11 22:04:39 +1000679.Sh AUTHORS
680OpenSSH is a derivative of the original and free
681ssh 1.2.12 release by Tatu Ylonen.
682Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos,
683Theo de Raadt and Dug Song
684removed many bugs, re-added newer features and
685created OpenSSH.
686Markus Friedl contributed the support for SSH
687protocol versions 1.5 and 2.0.