diff options
Diffstat (limited to 'ssh-keygen.0')
-rw-r--r-- | ssh-keygen.0 | 585 |
1 files changed, 585 insertions, 0 deletions
diff --git a/ssh-keygen.0 b/ssh-keygen.0 new file mode 100644 index 000000000..906a338c4 --- /dev/null +++ b/ssh-keygen.0 | |||
@@ -0,0 +1,585 @@ | |||
1 | SSH-KEYGEN(1) General Commands Manual SSH-KEYGEN(1) | ||
2 | |||
3 | NAME | ||
4 | ssh-keygen M-bM-^@M-^S authentication key generation, management and conversion | ||
5 | |||
6 | SYNOPSIS | ||
7 | ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | rsa] | ||
8 | [-N new_passphrase] [-C comment] [-f output_keyfile] | ||
9 | ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile] | ||
10 | ssh-keygen -i [-m key_format] [-f input_keyfile] | ||
11 | ssh-keygen -e [-m key_format] [-f input_keyfile] | ||
12 | ssh-keygen -y [-f input_keyfile] | ||
13 | ssh-keygen -c [-P passphrase] [-C comment] [-f keyfile] | ||
14 | ssh-keygen -l [-v] [-E fingerprint_hash] [-f input_keyfile] | ||
15 | ssh-keygen -B [-f input_keyfile] | ||
16 | ssh-keygen -D pkcs11 | ||
17 | ssh-keygen -F hostname [-f known_hosts_file] [-l] | ||
18 | ssh-keygen -H [-f known_hosts_file] | ||
19 | ssh-keygen -R hostname [-f known_hosts_file] | ||
20 | ssh-keygen -r hostname [-f input_keyfile] [-g] | ||
21 | ssh-keygen -G output_file [-v] [-b bits] [-M memory] [-S start_point] | ||
22 | ssh-keygen -T output_file -f input_file [-v] [-a rounds] [-J num_lines] | ||
23 | [-j start_line] [-K checkpt] [-W generator] | ||
24 | ssh-keygen -s ca_key -I certificate_identity [-h] [-U] | ||
25 | [-D pkcs11_provider] [-n principals] [-O option] | ||
26 | [-V validity_interval] [-z serial_number] file ... | ||
27 | ssh-keygen -L [-f input_keyfile] | ||
28 | ssh-keygen -A [-f prefix_path] | ||
29 | ssh-keygen -k -f krl_file [-u] [-s ca_public] [-z version_number] | ||
30 | file ... | ||
31 | ssh-keygen -Q -f krl_file file ... | ||
32 | |||
33 | DESCRIPTION | ||
34 | ssh-keygen generates, manages and converts authentication keys for | ||
35 | ssh(1). ssh-keygen can create keys for use by SSH protocol version 2. | ||
36 | |||
37 | The type of key to be generated is specified with the -t option. If | ||
38 | invoked without any arguments, ssh-keygen will generate an RSA key. | ||
39 | |||
40 | ssh-keygen is also used to generate groups for use in Diffie-Hellman | ||
41 | group exchange (DH-GEX). See the MODULI GENERATION section for details. | ||
42 | |||
43 | Finally, ssh-keygen can be used to generate and update Key Revocation | ||
44 | Lists, and to test whether given keys have been revoked by one. See the | ||
45 | KEY REVOCATION LISTS section for details. | ||
46 | |||
47 | Normally each user wishing to use SSH with public key authentication runs | ||
48 | this once to create the authentication key in ~/.ssh/id_dsa, | ||
49 | ~/.ssh/id_ecdsa, ~/.ssh/id_ed25519 or ~/.ssh/id_rsa. Additionally, the | ||
50 | system administrator may use this to generate host keys, as seen in | ||
51 | /etc/rc. | ||
52 | |||
53 | Normally this program generates the key and asks for a file in which to | ||
54 | store the private key. The public key is stored in a file with the same | ||
55 | name but M-bM-^@M-^\.pubM-bM-^@M-^] appended. The program also asks for a passphrase. The | ||
56 | passphrase may be empty to indicate no passphrase (host keys must have an | ||
57 | empty passphrase), or it may be a string of arbitrary length. A | ||
58 | passphrase is similar to a password, except it can be a phrase with a | ||
59 | series of words, punctuation, numbers, whitespace, or any string of | ||
60 | characters you want. Good passphrases are 10-30 characters long, are not | ||
61 | simple sentences or otherwise easily guessable (English prose has only | ||
62 | 1-2 bits of entropy per character, and provides very bad passphrases), | ||
63 | and contain a mix of upper and lowercase letters, numbers, and non- | ||
64 | alphanumeric characters. The passphrase can be changed later by using | ||
65 | the -p option. | ||
66 | |||
67 | There is no way to recover a lost passphrase. If the passphrase is lost | ||
68 | or forgotten, a new key must be generated and the corresponding public | ||
69 | key copied to other machines. | ||
70 | |||
71 | For keys stored in the newer OpenSSH format, there is also a comment | ||
72 | field in the key file that is only for convenience to the user to help | ||
73 | identify the key. The comment can tell what the key is for, or whatever | ||
74 | is useful. The comment is initialized to M-bM-^@M-^\user@hostM-bM-^@M-^] when the key is | ||
75 | created, but can be changed using the -c option. | ||
76 | |||
77 | After a key is generated, instructions below detail where the keys should | ||
78 | be placed to be activated. | ||
79 | |||
80 | The options are as follows: | ||
81 | |||
82 | -A For each of the key types (rsa, dsa, ecdsa and ed25519) for which | ||
83 | host keys do not exist, generate the host keys with the default | ||
84 | key file path, an empty passphrase, default bits for the key | ||
85 | type, and default comment. If -f has also been specified, its | ||
86 | argument is used as a prefix to the default path for the | ||
87 | resulting host key files. This is used by /etc/rc to generate | ||
88 | new host keys. | ||
89 | |||
90 | -a rounds | ||
91 | When saving a private key this option specifies the number of KDF | ||
92 | (key derivation function) rounds used. Higher numbers result in | ||
93 | slower passphrase verification and increased resistance to brute- | ||
94 | force password cracking (should the keys be stolen). | ||
95 | |||
96 | When screening DH-GEX candidates (using the -T command). This | ||
97 | option specifies the number of primality tests to perform. | ||
98 | |||
99 | -B Show the bubblebabble digest of specified private or public key | ||
100 | file. | ||
101 | |||
102 | -b bits | ||
103 | Specifies the number of bits in the key to create. For RSA keys, | ||
104 | the minimum size is 1024 bits and the default is 2048 bits. | ||
105 | Generally, 2048 bits is considered sufficient. DSA keys must be | ||
106 | exactly 1024 bits as specified by FIPS 186-2. For ECDSA keys, | ||
107 | the -b flag determines the key length by selecting from one of | ||
108 | three elliptic curve sizes: 256, 384 or 521 bits. Attempting to | ||
109 | use bit lengths other than these three values for ECDSA keys will | ||
110 | fail. Ed25519 keys have a fixed length and the -b flag will be | ||
111 | ignored. | ||
112 | |||
113 | -C comment | ||
114 | Provides a new comment. | ||
115 | |||
116 | -c Requests changing the comment in the private and public key | ||
117 | files. The program will prompt for the file containing the | ||
118 | private keys, for the passphrase if the key has one, and for the | ||
119 | new comment. | ||
120 | |||
121 | -D pkcs11 | ||
122 | Download the RSA public keys provided by the PKCS#11 shared | ||
123 | library pkcs11. When used in combination with -s, this option | ||
124 | indicates that a CA key resides in a PKCS#11 token (see the | ||
125 | CERTIFICATES section for details). | ||
126 | |||
127 | -E fingerprint_hash | ||
128 | Specifies the hash algorithm used when displaying key | ||
129 | fingerprints. Valid options are: M-bM-^@M-^\md5M-bM-^@M-^] and M-bM-^@M-^\sha256M-bM-^@M-^]. The | ||
130 | default is M-bM-^@M-^\sha256M-bM-^@M-^]. | ||
131 | |||
132 | -e This option will read a private or public OpenSSH key file and | ||
133 | print to stdout the key in one of the formats specified by the -m | ||
134 | option. The default export format is M-bM-^@M-^\RFC4716M-bM-^@M-^]. This option | ||
135 | allows exporting OpenSSH keys for use by other programs, | ||
136 | including several commercial SSH implementations. | ||
137 | |||
138 | -F hostname | ||
139 | Search for the specified hostname in a known_hosts file, listing | ||
140 | any occurrences found. This option is useful to find hashed host | ||
141 | names or addresses and may also be used in conjunction with the | ||
142 | -H option to print found keys in a hashed format. | ||
143 | |||
144 | -f filename | ||
145 | Specifies the filename of the key file. | ||
146 | |||
147 | -G output_file | ||
148 | Generate candidate primes for DH-GEX. These primes must be | ||
149 | screened for safety (using the -T option) before use. | ||
150 | |||
151 | -g Use generic DNS format when printing fingerprint resource records | ||
152 | using the -r command. | ||
153 | |||
154 | -H Hash a known_hosts file. This replaces all hostnames and | ||
155 | addresses with hashed representations within the specified file; | ||
156 | the original content is moved to a file with a .old suffix. | ||
157 | These hashes may be used normally by ssh and sshd, but they do | ||
158 | not reveal identifying information should the file's contents be | ||
159 | disclosed. This option will not modify existing hashed hostnames | ||
160 | and is therefore safe to use on files that mix hashed and non- | ||
161 | hashed names. | ||
162 | |||
163 | -h When signing a key, create a host certificate instead of a user | ||
164 | certificate. Please see the CERTIFICATES section for details. | ||
165 | |||
166 | -I certificate_identity | ||
167 | Specify the key identity when signing a public key. Please see | ||
168 | the CERTIFICATES section for details. | ||
169 | |||
170 | -i This option will read an unencrypted private (or public) key file | ||
171 | in the format specified by the -m option and print an OpenSSH | ||
172 | compatible private (or public) key to stdout. This option allows | ||
173 | importing keys from other software, including several commercial | ||
174 | SSH implementations. The default import format is M-bM-^@M-^\RFC4716M-bM-^@M-^]. | ||
175 | |||
176 | -J num_lines | ||
177 | Exit after screening the specified number of lines while | ||
178 | performing DH candidate screening using the -T option. | ||
179 | |||
180 | -j start_line | ||
181 | Start screening at the specified line number while performing DH | ||
182 | candidate screening using the -T option. | ||
183 | |||
184 | -K checkpt | ||
185 | Write the last line processed to the file checkpt while | ||
186 | performing DH candidate screening using the -T option. This will | ||
187 | be used to skip lines in the input file that have already been | ||
188 | processed if the job is restarted. | ||
189 | |||
190 | -k Generate a KRL file. In this mode, ssh-keygen will generate a | ||
191 | KRL file at the location specified via the -f flag that revokes | ||
192 | every key or certificate presented on the command line. | ||
193 | Keys/certificates to be revoked may be specified by public key | ||
194 | file or using the format described in the KEY REVOCATION LISTS | ||
195 | section. | ||
196 | |||
197 | -L Prints the contents of one or more certificates. | ||
198 | |||
199 | -l Show fingerprint of specified public key file. For RSA and DSA | ||
200 | keys ssh-keygen tries to find the matching public key file and | ||
201 | prints its fingerprint. If combined with -v, a visual ASCII art | ||
202 | representation of the key is supplied with the fingerprint. | ||
203 | |||
204 | -M memory | ||
205 | Specify the amount of memory to use (in megabytes) when | ||
206 | generating candidate moduli for DH-GEX. | ||
207 | |||
208 | -m key_format | ||
209 | Specify a key format for the -i (import) or -e (export) | ||
210 | conversion options. The supported key formats are: M-bM-^@M-^\RFC4716M-bM-^@M-^] | ||
211 | (RFC 4716/SSH2 public or private key), M-bM-^@M-^\PKCS8M-bM-^@M-^] (PEM PKCS8 public | ||
212 | key) or M-bM-^@M-^\PEMM-bM-^@M-^] (PEM public key). The default conversion format is | ||
213 | M-bM-^@M-^\RFC4716M-bM-^@M-^]. Setting a format of M-bM-^@M-^\PEMM-bM-^@M-^] when generating or updating | ||
214 | a supported private key type will cause the key to be stored in | ||
215 | the legacy PEM private key format. | ||
216 | |||
217 | -N new_passphrase | ||
218 | Provides the new passphrase. | ||
219 | |||
220 | -n principals | ||
221 | Specify one or more principals (user or host names) to be | ||
222 | included in a certificate when signing a key. Multiple | ||
223 | principals may be specified, separated by commas. Please see the | ||
224 | CERTIFICATES section for details. | ||
225 | |||
226 | -O option | ||
227 | Specify a certificate option when signing a key. This option may | ||
228 | be specified multiple times. See also the CERTIFICATES section | ||
229 | for further details. | ||
230 | |||
231 | At present, no standard options are valid for host keys. The | ||
232 | options that are valid for user certificates are: | ||
233 | |||
234 | clear Clear all enabled permissions. This is useful for | ||
235 | clearing the default set of permissions so permissions | ||
236 | may be added individually. | ||
237 | |||
238 | critical:name[=contents] | ||
239 | extension:name[=contents] | ||
240 | Includes an arbitrary certificate critical option or | ||
241 | extension. The specified name should include a domain | ||
242 | suffix, e.g. M-bM-^@M-^\name@example.comM-bM-^@M-^]. If contents is | ||
243 | specified then it is included as the contents of the | ||
244 | extension/option encoded as a string, otherwise the | ||
245 | extension/option is created with no contents (usually | ||
246 | indicating a flag). Extensions may be ignored by a | ||
247 | client or server that does not recognise them, whereas | ||
248 | unknown critical options will cause the certificate to be | ||
249 | refused. | ||
250 | |||
251 | force-command=command | ||
252 | Forces the execution of command instead of any shell or | ||
253 | command specified by the user when the certificate is | ||
254 | used for authentication. | ||
255 | |||
256 | no-agent-forwarding | ||
257 | Disable ssh-agent(1) forwarding (permitted by default). | ||
258 | |||
259 | no-port-forwarding | ||
260 | Disable port forwarding (permitted by default). | ||
261 | |||
262 | no-pty Disable PTY allocation (permitted by default). | ||
263 | |||
264 | no-user-rc | ||
265 | Disable execution of ~/.ssh/rc by sshd(8) (permitted by | ||
266 | default). | ||
267 | |||
268 | no-x11-forwarding | ||
269 | Disable X11 forwarding (permitted by default). | ||
270 | |||
271 | permit-agent-forwarding | ||
272 | Allows ssh-agent(1) forwarding. | ||
273 | |||
274 | permit-port-forwarding | ||
275 | Allows port forwarding. | ||
276 | |||
277 | permit-pty | ||
278 | Allows PTY allocation. | ||
279 | |||
280 | permit-user-rc | ||
281 | Allows execution of ~/.ssh/rc by sshd(8). | ||
282 | |||
283 | permit-X11-forwarding | ||
284 | Allows X11 forwarding. | ||
285 | |||
286 | source-address=address_list | ||
287 | Restrict the source addresses from which the certificate | ||
288 | is considered valid. The address_list is a comma- | ||
289 | separated list of one or more address/netmask pairs in | ||
290 | CIDR format. | ||
291 | |||
292 | -P passphrase | ||
293 | Provides the (old) passphrase. | ||
294 | |||
295 | -p Requests changing the passphrase of a private key file instead of | ||
296 | creating a new private key. The program will prompt for the file | ||
297 | containing the private key, for the old passphrase, and twice for | ||
298 | the new passphrase. | ||
299 | |||
300 | -Q Test whether keys have been revoked in a KRL. | ||
301 | |||
302 | -q Silence ssh-keygen. | ||
303 | |||
304 | -R hostname | ||
305 | Removes all keys belonging to hostname from a known_hosts file. | ||
306 | This option is useful to delete hashed hosts (see the -H option | ||
307 | above). | ||
308 | |||
309 | -r hostname | ||
310 | Print the SSHFP fingerprint resource record named hostname for | ||
311 | the specified public key file. | ||
312 | |||
313 | -S start | ||
314 | Specify start point (in hex) when generating candidate moduli for | ||
315 | DH-GEX. | ||
316 | |||
317 | -s ca_key | ||
318 | Certify (sign) a public key using the specified CA key. Please | ||
319 | see the CERTIFICATES section for details. | ||
320 | |||
321 | When generating a KRL, -s specifies a path to a CA public key | ||
322 | file used to revoke certificates directly by key ID or serial | ||
323 | number. See the KEY REVOCATION LISTS section for details. | ||
324 | |||
325 | -T output_file | ||
326 | Test DH group exchange candidate primes (generated using the -G | ||
327 | option) for safety. | ||
328 | |||
329 | -t dsa | ecdsa | ed25519 | rsa | ||
330 | Specifies the type of key to create. The possible values are | ||
331 | M-bM-^@M-^\dsaM-bM-^@M-^], M-bM-^@M-^\ecdsaM-bM-^@M-^], M-bM-^@M-^\ed25519M-bM-^@M-^], or M-bM-^@M-^\rsaM-bM-^@M-^]. | ||
332 | |||
333 | -U When used in combination with -s, this option indicates that a CA | ||
334 | key resides in a ssh-agent(1). See the CERTIFICATES section for | ||
335 | more information. | ||
336 | |||
337 | -u Update a KRL. When specified with -k, keys listed via the | ||
338 | command line are added to the existing KRL rather than a new KRL | ||
339 | being created. | ||
340 | |||
341 | -V validity_interval | ||
342 | Specify a validity interval when signing a certificate. A | ||
343 | validity interval may consist of a single time, indicating that | ||
344 | the certificate is valid beginning now and expiring at that time, | ||
345 | or may consist of two times separated by a colon to indicate an | ||
346 | explicit time interval. | ||
347 | |||
348 | The start time may be specified as the string M-bM-^@M-^\alwaysM-bM-^@M-^] to | ||
349 | indicate the certificate has no specified start time, a date in | ||
350 | YYYYMMDD format, a time in YYYYMMDDHHMM[SS] format, a relative | ||
351 | time (to the current time) consisting of a minus sign followed by | ||
352 | an interval in the format described in the TIME FORMATS section | ||
353 | of sshd_config(5). | ||
354 | |||
355 | The end time may be specified as a YYYYMMDD date, a | ||
356 | YYYYMMDDHHMM[SS] time, a relative time starting with a plus | ||
357 | character or the string M-bM-^@M-^\foreverM-bM-^@M-^] to indicate that the | ||
358 | certificate has no expirty date. | ||
359 | |||
360 | For example: M-bM-^@M-^\+52w1dM-bM-^@M-^] (valid from now to 52 weeks and one day | ||
361 | from now), M-bM-^@M-^\-4w:+4wM-bM-^@M-^] (valid from four weeks ago to four weeks | ||
362 | from now), M-bM-^@M-^\20100101123000:20110101123000M-bM-^@M-^] (valid from 12:30 PM, | ||
363 | January 1st, 2010 to 12:30 PM, January 1st, 2011), M-bM-^@M-^\-1d:20110101M-bM-^@M-^] | ||
364 | (valid from yesterday to midnight, January 1st, 2011). | ||
365 | M-bM-^@M-^\-1m:foreverM-bM-^@M-^] (valid from one minute ago and never expiring). | ||
366 | |||
367 | -v Verbose mode. Causes ssh-keygen to print debugging messages | ||
368 | about its progress. This is helpful for debugging moduli | ||
369 | generation. Multiple -v options increase the verbosity. The | ||
370 | maximum is 3. | ||
371 | |||
372 | -W generator | ||
373 | Specify desired generator when testing candidate moduli for DH- | ||
374 | GEX. | ||
375 | |||
376 | -y This option will read a private OpenSSH format file and print an | ||
377 | OpenSSH public key to stdout. | ||
378 | |||
379 | -z serial_number | ||
380 | Specifies a serial number to be embedded in the certificate to | ||
381 | distinguish this certificate from others from the same CA. The | ||
382 | default serial number is zero. | ||
383 | |||
384 | When generating a KRL, the -z flag is used to specify a KRL | ||
385 | version number. | ||
386 | |||
387 | MODULI GENERATION | ||
388 | ssh-keygen may be used to generate groups for the Diffie-Hellman Group | ||
389 | Exchange (DH-GEX) protocol. Generating these groups is a two-step | ||
390 | process: first, candidate primes are generated using a fast, but memory | ||
391 | intensive process. These candidate primes are then tested for | ||
392 | suitability (a CPU-intensive process). | ||
393 | |||
394 | Generation of primes is performed using the -G option. The desired | ||
395 | length of the primes may be specified by the -b option. For example: | ||
396 | |||
397 | # ssh-keygen -G moduli-2048.candidates -b 2048 | ||
398 | |||
399 | By default, the search for primes begins at a random point in the desired | ||
400 | length range. This may be overridden using the -S option, which | ||
401 | specifies a different start point (in hex). | ||
402 | |||
403 | Once a set of candidates have been generated, they must be screened for | ||
404 | suitability. This may be performed using the -T option. In this mode | ||
405 | ssh-keygen will read candidates from standard input (or a file specified | ||
406 | using the -f option). For example: | ||
407 | |||
408 | # ssh-keygen -T moduli-2048 -f moduli-2048.candidates | ||
409 | |||
410 | By default, each candidate will be subjected to 100 primality tests. | ||
411 | This may be overridden using the -a option. The DH generator value will | ||
412 | be chosen automatically for the prime under consideration. If a specific | ||
413 | generator is desired, it may be requested using the -W option. Valid | ||
414 | generator values are 2, 3, and 5. | ||
415 | |||
416 | Screened DH groups may be installed in /etc/moduli. It is important that | ||
417 | this file contains moduli of a range of bit lengths and that both ends of | ||
418 | a connection share common moduli. | ||
419 | |||
420 | CERTIFICATES | ||
421 | ssh-keygen supports signing of keys to produce certificates that may be | ||
422 | used for user or host authentication. Certificates consist of a public | ||
423 | key, some identity information, zero or more principal (user or host) | ||
424 | names and a set of options that are signed by a Certification Authority | ||
425 | (CA) key. Clients or servers may then trust only the CA key and verify | ||
426 | its signature on a certificate rather than trusting many user/host keys. | ||
427 | Note that OpenSSH certificates are a different, and much simpler, format | ||
428 | to the X.509 certificates used in ssl(8). | ||
429 | |||
430 | ssh-keygen supports two types of certificates: user and host. User | ||
431 | certificates authenticate users to servers, whereas host certificates | ||
432 | authenticate server hosts to users. To generate a user certificate: | ||
433 | |||
434 | $ ssh-keygen -s /path/to/ca_key -I key_id /path/to/user_key.pub | ||
435 | |||
436 | The resultant certificate will be placed in /path/to/user_key-cert.pub. | ||
437 | A host certificate requires the -h option: | ||
438 | |||
439 | $ ssh-keygen -s /path/to/ca_key -I key_id -h /path/to/host_key.pub | ||
440 | |||
441 | The host certificate will be output to /path/to/host_key-cert.pub. | ||
442 | |||
443 | It is possible to sign using a CA key stored in a PKCS#11 token by | ||
444 | providing the token library using -D and identifying the CA key by | ||
445 | providing its public half as an argument to -s: | ||
446 | |||
447 | $ ssh-keygen -s ca_key.pub -D libpkcs11.so -I key_id user_key.pub | ||
448 | |||
449 | Similarly, it is possible for the CA key to be hosted in a ssh-agent(1). | ||
450 | This is indicated by the -U flag and, again, the CA key must be | ||
451 | identified by its public half. | ||
452 | |||
453 | $ ssh-keygen -Us ca_key.pub -I key_id user_key.pub | ||
454 | |||
455 | In all cases, key_id is a "key identifier" that is logged by the server | ||
456 | when the certificate is used for authentication. | ||
457 | |||
458 | Certificates may be limited to be valid for a set of principal | ||
459 | (user/host) names. By default, generated certificates are valid for all | ||
460 | users or hosts. To generate a certificate for a specified set of | ||
461 | principals: | ||
462 | |||
463 | $ ssh-keygen -s ca_key -I key_id -n user1,user2 user_key.pub | ||
464 | $ ssh-keygen -s ca_key -I key_id -h -n host.domain host_key.pub | ||
465 | |||
466 | Additional limitations on the validity and use of user certificates may | ||
467 | be specified through certificate options. A certificate option may | ||
468 | disable features of the SSH session, may be valid only when presented | ||
469 | from particular source addresses or may force the use of a specific | ||
470 | command. For a list of valid certificate options, see the documentation | ||
471 | for the -O option above. | ||
472 | |||
473 | Finally, certificates may be defined with a validity lifetime. The -V | ||
474 | option allows specification of certificate start and end times. A | ||
475 | certificate that is presented at a time outside this range will not be | ||
476 | considered valid. By default, certificates are valid from UNIX Epoch to | ||
477 | the distant future. | ||
478 | |||
479 | For certificates to be used for user or host authentication, the CA | ||
480 | public key must be trusted by sshd(8) or ssh(1). Please refer to those | ||
481 | manual pages for details. | ||
482 | |||
483 | KEY REVOCATION LISTS | ||
484 | ssh-keygen is able to manage OpenSSH format Key Revocation Lists (KRLs). | ||
485 | These binary files specify keys or certificates to be revoked using a | ||
486 | compact format, taking as little as one bit per certificate if they are | ||
487 | being revoked by serial number. | ||
488 | |||
489 | KRLs may be generated using the -k flag. This option reads one or more | ||
490 | files from the command line and generates a new KRL. The files may | ||
491 | either contain a KRL specification (see below) or public keys, listed one | ||
492 | per line. Plain public keys are revoked by listing their hash or | ||
493 | contents in the KRL and certificates revoked by serial number or key ID | ||
494 | (if the serial is zero or not available). | ||
495 | |||
496 | Revoking keys using a KRL specification offers explicit control over the | ||
497 | types of record used to revoke keys and may be used to directly revoke | ||
498 | certificates by serial number or key ID without having the complete | ||
499 | original certificate on hand. A KRL specification consists of lines | ||
500 | containing one of the following directives followed by a colon and some | ||
501 | directive-specific information. | ||
502 | |||
503 | serial: serial_number[-serial_number] | ||
504 | Revokes a certificate with the specified serial number. Serial | ||
505 | numbers are 64-bit values, not including zero and may be | ||
506 | expressed in decimal, hex or octal. If two serial numbers are | ||
507 | specified separated by a hyphen, then the range of serial numbers | ||
508 | including and between each is revoked. The CA key must have been | ||
509 | specified on the ssh-keygen command line using the -s option. | ||
510 | |||
511 | id: key_id | ||
512 | Revokes a certificate with the specified key ID string. The CA | ||
513 | key must have been specified on the ssh-keygen command line using | ||
514 | the -s option. | ||
515 | |||
516 | key: public_key | ||
517 | Revokes the specified key. If a certificate is listed, then it | ||
518 | is revoked as a plain public key. | ||
519 | |||
520 | sha1: public_key | ||
521 | Revokes the specified key by including its SHA1 hash in the KRL. | ||
522 | |||
523 | sha256: public_key | ||
524 | Revokes the specified key by including its SHA256 hash in the | ||
525 | KRL. KRLs that revoke keys by SHA256 hash are not supported by | ||
526 | OpenSSH versions prior to 7.9. | ||
527 | |||
528 | hash: fingerprint | ||
529 | Revokes a key using a fingerprint hash, as obtained from a | ||
530 | sshd(8) authentication log message or the ssh-keygen -l flag. | ||
531 | Only SHA256 fingerprints are supported here and resultant KRLs | ||
532 | are not supported by OpenSSH versions prior to 7.9. | ||
533 | |||
534 | KRLs may be updated using the -u flag in addition to -k. When this | ||
535 | option is specified, keys listed via the command line are merged into the | ||
536 | KRL, adding to those already there. | ||
537 | |||
538 | It is also possible, given a KRL, to test whether it revokes a particular | ||
539 | key (or keys). The -Q flag will query an existing KRL, testing each key | ||
540 | specified on the command line. If any key listed on the command line has | ||
541 | been revoked (or an error encountered) then ssh-keygen will exit with a | ||
542 | non-zero exit status. A zero exit status will only be returned if no key | ||
543 | was revoked. | ||
544 | |||
545 | FILES | ||
546 | ~/.ssh/id_dsa | ||
547 | ~/.ssh/id_ecdsa | ||
548 | ~/.ssh/id_ed25519 | ||
549 | ~/.ssh/id_rsa | ||
550 | Contains the DSA, ECDSA, Ed25519 or RSA authentication identity | ||
551 | of the user. This file should not be readable by anyone but the | ||
552 | user. It is possible to specify a passphrase when generating the | ||
553 | key; that passphrase will be used to encrypt the private part of | ||
554 | this file using 128-bit AES. This file is not automatically | ||
555 | accessed by ssh-keygen but it is offered as the default file for | ||
556 | the private key. ssh(1) will read this file when a login attempt | ||
557 | is made. | ||
558 | |||
559 | ~/.ssh/id_dsa.pub | ||
560 | ~/.ssh/id_ecdsa.pub | ||
561 | ~/.ssh/id_ed25519.pub | ||
562 | ~/.ssh/id_rsa.pub | ||
563 | Contains the DSA, ECDSA, Ed25519 or RSA public key for | ||
564 | authentication. The contents of this file should be added to | ||
565 | ~/.ssh/authorized_keys on all machines where the user wishes to | ||
566 | log in using public key authentication. There is no need to keep | ||
567 | the contents of this file secret. | ||
568 | |||
569 | /etc/moduli | ||
570 | Contains Diffie-Hellman groups used for DH-GEX. The file format | ||
571 | is described in moduli(5). | ||
572 | |||
573 | SEE ALSO | ||
574 | ssh(1), ssh-add(1), ssh-agent(1), moduli(5), sshd(8) | ||
575 | |||
576 | The Secure Shell (SSH) Public Key File Format, RFC 4716, 2006. | ||
577 | |||
578 | AUTHORS | ||
579 | OpenSSH is a derivative of the original and free ssh 1.2.12 release by | ||
580 | Tatu Ylonen. Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo | ||
581 | de Raadt and Dug Song removed many bugs, re-added newer features and | ||
582 | created OpenSSH. Markus Friedl contributed the support for SSH protocol | ||
583 | versions 1.5 and 2.0. | ||
584 | |||
585 | OpenBSD 6.4 September 12, 2018 OpenBSD 6.4 | ||