2407 lines
40 KiB
HTML
2407 lines
40 KiB
HTML
|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<HTML><HEAD><TITLE>Man page of SSH-KEYGEN</TITLE>
|
|
</HEAD><BODY>
|
|
<H1>SSH-KEYGEN</H1>
|
|
Section: User Commands (1)<BR><A HREF="#index">Index</A>
|
|
<A HREF="/cgi-bin/man/man2html">Return to Main Contents</A><HR>
|
|
<BR>BSD mandoc<BR>
|
|
<A NAME="lbAB"> </A>
|
|
<H2>NAME</H2>
|
|
|
|
|
|
|
|
<B>ssh-keygen</B>
|
|
|
|
- OpenSSH authentication key utility
|
|
|
|
<A NAME="lbAC"> </A>
|
|
<H2>SYNOPSIS</H2>
|
|
|
|
<B>ssh-keygen</B>
|
|
|
|
[-<B>q</B>
|
|
|
|
]
|
|
|
|
[-<B>b </B><I>bits</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
[-<B>C </B><I>comment</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
[-<B>f </B><I>output_keyfile</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
[-<B>m </B><I>format</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
[-<B>t dsa | ecdsa | ecdsa-sk | ed25519 | ed25519-sk | rsa</B>
|
|
|
|
|
|
|
|
]
|
|
|
|
[-<B>N </B><I>new_passphrase</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
[-<B>O </B><I>option</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
[-<B>w </B><I>provider</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
<BR><B>ssh-keygen</B>
|
|
|
|
-<B>p</B>
|
|
|
|
[-<B>f </B><I>keyfile</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
[-<B>m </B><I>format</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
[-<B>N </B><I>new_passphrase</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
[-<B>P </B><I>old_passphrase</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
<BR><B>ssh-keygen</B>
|
|
|
|
-<B>i</B>
|
|
|
|
[-<B>f </B><I>input_keyfile</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
[-<B>m </B><I>key_format</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
<BR><B>ssh-keygen</B>
|
|
|
|
-<B>e</B>
|
|
|
|
[-<B>f </B><I>input_keyfile</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
[-<B>m </B><I>key_format</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
<BR><B>ssh-keygen</B>
|
|
|
|
-<B>y</B>
|
|
|
|
[-<B>f </B><I>input_keyfile</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
<BR><B>ssh-keygen</B>
|
|
|
|
-<B>c</B>
|
|
|
|
[-<B>C </B><I>comment</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
[-<B>f </B><I>keyfile</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
[-<B>P </B><I>passphrase</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
<BR><B>ssh-keygen</B>
|
|
|
|
-<B>l</B>
|
|
|
|
[-<B>v</B>
|
|
|
|
]
|
|
|
|
[-<B>E </B><I>fingerprint_hash</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
[-<B>f </B><I>input_keyfile</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
<BR><B>ssh-keygen</B>
|
|
|
|
-<B>B</B>
|
|
|
|
[-<B>f </B><I>input_keyfile</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
<BR><B>ssh-keygen</B>
|
|
|
|
-<B>D </B><I>pkcs11</I>
|
|
|
|
|
|
|
|
<BR><B>ssh-keygen</B>
|
|
|
|
-<B>F </B><I>hostname</I>
|
|
|
|
|
|
|
|
[-<B>lv</B>
|
|
|
|
]
|
|
|
|
[-<B>f </B><I>known_hosts_file</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
<BR><B>ssh-keygen</B>
|
|
|
|
-<B>H</B>
|
|
|
|
[-<B>f </B><I>known_hosts_file</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
<BR><B>ssh-keygen</B>
|
|
|
|
-<B>K</B>
|
|
|
|
[-<B>w </B><I>provider</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
<BR><B>ssh-keygen</B>
|
|
|
|
-<B>R </B><I>hostname</I>
|
|
|
|
|
|
|
|
[-<B>f </B><I>known_hosts_file</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
<BR><B>ssh-keygen</B>
|
|
|
|
-<B>r </B><I>hostname</I>
|
|
|
|
|
|
|
|
[-<B>g</B>
|
|
|
|
]
|
|
|
|
[-<B>f </B><I>input_keyfile</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
<BR><B>ssh-keygen</B>
|
|
|
|
-<B>M generate</B>
|
|
|
|
|
|
|
|
[-<B>O </B><I>option</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
<I>output_file</I>
|
|
|
|
<BR><B>ssh-keygen</B>
|
|
|
|
-<B>M screen</B>
|
|
|
|
|
|
|
|
[-<B>f </B><I>input_file</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
[-<B>O </B><I>option</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
<I>output_file</I>
|
|
|
|
<BR><B>ssh-keygen</B>
|
|
|
|
-<B>I </B><I>certificate_identity</I>
|
|
|
|
|
|
|
|
-<B>s </B><I>ca_key</I>
|
|
|
|
|
|
|
|
[-<B>hU</B>
|
|
|
|
]
|
|
|
|
[-<B>D </B><I>pkcs11_provider</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
[-<B>n </B><I>principals</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
[-<B>O </B><I>option</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
[-<B>V </B><I>validity_interval</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
[-<B>z </B><I>serial_number</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
<I>file ...</I>
|
|
|
|
|
|
<BR><B>ssh-keygen</B>
|
|
|
|
-<B>L</B>
|
|
|
|
[-<B>f </B><I>input_keyfile</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
<BR><B>ssh-keygen</B>
|
|
|
|
-<B>A</B>
|
|
|
|
[-<B>f </B><I>prefix_path</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
<BR><B>ssh-keygen</B>
|
|
|
|
-<B>k</B>
|
|
|
|
-<B>f </B><I>krl_file</I>
|
|
|
|
|
|
|
|
[-<B>u</B>
|
|
|
|
]
|
|
|
|
[-<B>s </B><I>ca_public</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
[-<B>z </B><I>version_number</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
<I>file ...</I>
|
|
|
|
|
|
<BR><B>ssh-keygen</B>
|
|
|
|
-<B>Q</B>
|
|
|
|
-<B>f </B><I>krl_file</I>
|
|
|
|
|
|
|
|
<I>file ...</I>
|
|
|
|
|
|
<BR><B>ssh-keygen</B>
|
|
|
|
-<B>Y find-principals</B>
|
|
|
|
|
|
|
|
-<B>s </B><I>signature_file</I>
|
|
|
|
|
|
|
|
-<B>f </B><I>allowed_signers_file</I>
|
|
|
|
|
|
|
|
<BR><B>ssh-keygen</B>
|
|
|
|
-<B>Y check-novalidate</B>
|
|
|
|
|
|
|
|
-<B>n </B><I>namespace</I>
|
|
|
|
|
|
|
|
-<B>s </B><I>signature_file</I>
|
|
|
|
|
|
|
|
<BR><B>ssh-keygen</B>
|
|
|
|
-<B>Y sign</B>
|
|
|
|
|
|
|
|
-<B>f </B><I>key_file</I>
|
|
|
|
|
|
|
|
-<B>n </B><I>namespace</I>
|
|
|
|
|
|
|
|
<I>file ...</I>
|
|
|
|
|
|
<BR><B>ssh-keygen</B>
|
|
|
|
-<B>Y verify</B>
|
|
|
|
|
|
|
|
-<B>f </B><I>allowed_signers_file</I>
|
|
|
|
|
|
|
|
-<B>I </B><I>signer_identity</I>
|
|
|
|
|
|
|
|
-<B>n </B><I>namespace</I>
|
|
|
|
|
|
|
|
-<B>s </B><I>signature_file</I>
|
|
|
|
|
|
|
|
[-<B>r </B><I>revocation_file</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
<A NAME="lbAD"> </A>
|
|
<H2>DESCRIPTION</H2>
|
|
|
|
<B>ssh-keygen</B>
|
|
|
|
|
|
generates, manages and converts authentication keys for
|
|
<A HREF="/cgi-bin/man/man2html?1+ssh">ssh</A>(1).
|
|
|
|
|
|
<B>ssh-keygen</B>
|
|
|
|
|
|
can create keys for use by SSH protocol version 2.
|
|
<P>
|
|
|
|
The type of key to be generated is specified with the
|
|
-<B>t</B>
|
|
|
|
option.
|
|
If invoked without any arguments,
|
|
<B>ssh-keygen</B>
|
|
|
|
|
|
will generate an RSA key.
|
|
<P>
|
|
|
|
<B>ssh-keygen</B>
|
|
|
|
|
|
is also used to generate groups for use in Diffie-Hellman group
|
|
exchange (DH-GEX).
|
|
See the
|
|
Sx MODULI GENERATION
|
|
|
|
section for details.
|
|
<P>
|
|
|
|
Finally,
|
|
<B>ssh-keygen</B>
|
|
|
|
|
|
can be used to generate and update Key Revocation Lists, and to test whether
|
|
given keys have been revoked by one.
|
|
See the
|
|
Sx KEY REVOCATION LISTS
|
|
|
|
section for details.
|
|
<P>
|
|
|
|
Normally each user wishing to use SSH
|
|
with public key authentication runs this once to create the authentication
|
|
key in
|
|
~/.ssh/id_dsa
|
|
|
|
|
|
~/.ssh/id_ecdsa
|
|
|
|
|
|
~/.ssh/id_ecdsa_sk
|
|
|
|
|
|
~/.ssh/id_ed25519
|
|
|
|
|
|
~/.ssh/id_ed25519_sk
|
|
|
|
or
|
|
~/.ssh/id_rsa
|
|
|
|
|
|
Additionally, the system administrator may use this to generate host keys.
|
|
<P>
|
|
|
|
Normally this program generates the key and asks for a file in which
|
|
to store the private key.
|
|
The public key is stored in a file with the same name but
|
|
``.pub''
|
|
|
|
appended.
|
|
The program also asks for a passphrase.
|
|
The passphrase may be empty to indicate no passphrase
|
|
(host keys must have an empty passphrase), or it may be a string of
|
|
arbitrary length.
|
|
A passphrase is similar to a password, except it can be a phrase with a
|
|
series of words, punctuation, numbers, whitespace, or any string of
|
|
characters you want.
|
|
Good passphrases are 10-30 characters long, are
|
|
not simple sentences or otherwise easily guessable (English
|
|
prose has only 1-2 bits of entropy per character, and provides very bad
|
|
passphrases), and contain a mix of upper and lowercase letters,
|
|
numbers, and non-alphanumeric characters.
|
|
The passphrase can be changed later by using the
|
|
-<B>p</B>
|
|
|
|
option.
|
|
<P>
|
|
|
|
There is no way to recover a lost passphrase.
|
|
If the passphrase is lost or forgotten, a new key must be generated
|
|
and the corresponding public key copied to other machines.
|
|
<P>
|
|
|
|
<B>ssh-keygen</B>
|
|
|
|
|
|
will by default write keys in an OpenSSH-specific format.
|
|
This format is preferred as it offers better protection for
|
|
keys at rest as well as allowing storage of key comments within
|
|
the private key file itself.
|
|
The key comment may be useful to help identify the key.
|
|
The comment is initialized to
|
|
``<A HREF="mailto:user@host">user@host</A>''
|
|
|
|
when the key is created, but can be changed using the
|
|
-<B>c</B>
|
|
|
|
option.
|
|
<P>
|
|
|
|
It is still possible for
|
|
<B>ssh-keygen</B>
|
|
|
|
|
|
to write the previously-used PEM format private keys using the
|
|
-<B>m</B>
|
|
|
|
flag.
|
|
This may be used when generating new keys, and existing new-format
|
|
keys may be converted using this option in conjunction with the
|
|
-<B>p</B>
|
|
|
|
(change passphrase) flag.
|
|
<P>
|
|
|
|
After a key is generated, instructions below detail where the keys
|
|
should be placed to be activated.
|
|
<P>
|
|
|
|
The options are as follows:
|
|
<DL COMPACT>
|
|
<P>
|
|
|
|
<DT id="1"><B>-A</B>
|
|
|
|
|
|
<DD>
|
|
For each of the key types (rsa, dsa, ecdsa and ed25519)
|
|
for which host keys
|
|
do not exist, generate the host keys with the default key file path,
|
|
an empty passphrase, default bits for the key type, and default comment.
|
|
If
|
|
-<B>f</B>
|
|
|
|
has also been specified, its argument is used as a prefix to the
|
|
default path for the resulting host key files.
|
|
This is used by system administration scripts to generate new host keys.
|
|
<DT id="2"><B>-a </B><I>rounds</I>
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
When saving a private key, this option specifies the number of KDF
|
|
(key derivation function) rounds used.
|
|
Higher numbers result in slower passphrase verification and increased
|
|
resistance to brute-force password cracking (should the keys be stolen).
|
|
<DT id="3"><B>-B</B>
|
|
|
|
|
|
<DD>
|
|
Show the bubblebabble digest of specified private or public key file.
|
|
<DT id="4"><B>-b </B><I>bits</I>
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Specifies the number of bits in the key to create.
|
|
For RSA keys, the minimum size is 1024 bits and the default is 3072 bits.
|
|
Generally, 3072 bits is considered sufficient.
|
|
DSA keys must be exactly 1024 bits as specified by FIPS 186-2.
|
|
For ECDSA keys, the
|
|
-<B>b</B>
|
|
|
|
flag determines the key length by selecting from one of three elliptic
|
|
curve sizes: 256, 384 or 521 bits.
|
|
Attempting to use bit lengths other than these three values for ECDSA keys
|
|
will fail.
|
|
ECDSA-SK, Ed25519 and Ed25519-SK keys have a fixed length and the
|
|
-<B>b</B>
|
|
|
|
flag will be ignored.
|
|
<DT id="5"><B>-C </B><I>comment</I>
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Provides a new comment.
|
|
<DT id="6"><B>-c</B>
|
|
|
|
|
|
<DD>
|
|
Requests changing the comment in the private and public key files.
|
|
The program will prompt for the file containing the private keys, for
|
|
the passphrase if the key has one, and for the new comment.
|
|
<DT id="7"><B>-D </B><I>pkcs11</I>
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Download the public keys provided by the PKCS#11 shared library
|
|
<I>pkcs11</I>
|
|
|
|
|
|
When used in combination with
|
|
-<B>s</B>
|
|
|
|
|
|
this option indicates that a CA key resides in a PKCS#11 token (see the
|
|
Sx CERTIFICATES
|
|
|
|
section for details).
|
|
<DT id="8"><B>-E </B><I>fingerprint_hash</I>
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Specifies the hash algorithm used when displaying key fingerprints.
|
|
Valid options are:
|
|
``md5''
|
|
|
|
and
|
|
``sha256''
|
|
|
|
|
|
The default is
|
|
``sha256''
|
|
|
|
|
|
<DT id="9"><B>-e</B>
|
|
|
|
|
|
<DD>
|
|
This option will read a private or public OpenSSH key file and
|
|
print to stdout a public key in one of the formats specified by the
|
|
-<B>m</B>
|
|
|
|
option.
|
|
The default export format is
|
|
``RFC4716''
|
|
|
|
|
|
This option allows exporting OpenSSH keys for use by other programs, including
|
|
several commercial SSH implementations.
|
|
<DT id="10"><B>-F </B><I>hostname | [hostname]:port</I>
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Search for the specified
|
|
<I>hostname</I>
|
|
|
|
(with optional port number)
|
|
in a
|
|
known_hosts
|
|
|
|
file, listing any occurrences found.
|
|
This option is useful to find hashed host names or addresses and may also be
|
|
used in conjunction with the
|
|
-<B>H</B>
|
|
|
|
option to print found keys in a hashed format.
|
|
<DT id="11"><B>-f </B><I>filename</I>
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Specifies the filename of the key file.
|
|
<DT id="12"><B>-g</B>
|
|
|
|
|
|
<DD>
|
|
Use generic DNS format when printing fingerprint resource records using the
|
|
-<B>r</B>
|
|
|
|
command.
|
|
<DT id="13"><B>-H</B>
|
|
|
|
|
|
<DD>
|
|
Hash a
|
|
known_hosts
|
|
|
|
file.
|
|
This replaces all hostnames and addresses with hashed representations
|
|
within the specified file; the original content is moved to a file with
|
|
a .old suffix.
|
|
These hashes may be used normally by
|
|
<B>ssh</B>
|
|
|
|
and
|
|
<B>sshd</B>
|
|
|
|
|
|
but they do not reveal identifying information should the file's contents
|
|
be disclosed.
|
|
This option will not modify existing hashed hostnames and is therefore safe
|
|
to use on files that mix hashed and non-hashed names.
|
|
<DT id="14"><B>-h</B>
|
|
|
|
|
|
<DD>
|
|
When signing a key, create a host certificate instead of a user
|
|
certificate.
|
|
Please see the
|
|
Sx CERTIFICATES
|
|
|
|
section for details.
|
|
<DT id="15"><B>-I </B><I>certificate_identity</I>
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Specify the key identity when signing a public key.
|
|
Please see the
|
|
Sx CERTIFICATES
|
|
|
|
section for details.
|
|
<DT id="16"><B>-i</B>
|
|
|
|
|
|
<DD>
|
|
This option will read an unencrypted private (or public) key file
|
|
in the format specified by the
|
|
-<B>m</B>
|
|
|
|
option and print an OpenSSH compatible private
|
|
(or public) key to stdout.
|
|
This option allows importing keys from other software, including several
|
|
commercial SSH implementations.
|
|
The default import format is
|
|
``RFC4716''
|
|
|
|
|
|
<DT id="17"><B>-K</B>
|
|
|
|
|
|
<DD>
|
|
Download resident keys from a FIDO authenticator.
|
|
Public and private key files will be written to the current directory for
|
|
each downloaded key.
|
|
<DT id="18"><B>-k</B>
|
|
|
|
|
|
<DD>
|
|
Generate a KRL file.
|
|
In this mode,
|
|
<B>ssh-keygen</B>
|
|
|
|
|
|
will generate a KRL file at the location specified via the
|
|
-<B>f</B>
|
|
|
|
flag that revokes every key or certificate presented on the command line.
|
|
Keys/certificates to be revoked may be specified by public key file or
|
|
using the format described in the
|
|
Sx KEY REVOCATION LISTS
|
|
|
|
section.
|
|
<DT id="19"><B>-L</B>
|
|
|
|
|
|
<DD>
|
|
Prints the contents of one or more certificates.
|
|
<DT id="20"><B>-l</B>
|
|
|
|
|
|
<DD>
|
|
Show fingerprint of specified public key file.
|
|
For RSA and DSA keys
|
|
<B>ssh-keygen</B>
|
|
|
|
|
|
tries to find the matching public key file and prints its fingerprint.
|
|
If combined with
|
|
-<B>v</B>
|
|
|
|
|
|
a visual ASCII art representation of the key is supplied with the
|
|
fingerprint.
|
|
<DT id="21"><B>-M generate</B>
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Generate candidate Diffie-Hellman Group Exchange (DH-GEX) parameters for
|
|
eventual use by the
|
|
`diffie-hellman-group-exchange-*'
|
|
|
|
key exchange methods.
|
|
The numbers generated by this operation must be further screened before
|
|
use.
|
|
See the
|
|
Sx MODULI GENERATION
|
|
|
|
section for more information.
|
|
<DT id="22"><B>-M screen</B>
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Screen candidate parameters for Diffie-Hellman Group Exchange.
|
|
This will accept a list of candidate numbers and test that they are
|
|
safe (Sophie Germain) primes with acceptable group generators.
|
|
The results of this operation may be added to the
|
|
/etc/ssh/moduli
|
|
|
|
file.
|
|
See the
|
|
Sx MODULI GENERATION
|
|
|
|
section for more information.
|
|
<DT id="23"><B>-m </B><I>key_format</I>
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Specify a key format for key generation, the
|
|
-<B>i</B>
|
|
|
|
(import),
|
|
-<B>e</B>
|
|
|
|
(export) conversion options, and the
|
|
-<B>p</B>
|
|
|
|
change passphrase operation.
|
|
The latter may be used to convert between OpenSSH private key and PEM
|
|
private key formats.
|
|
The supported key formats are:
|
|
``RFC4716''
|
|
|
|
(RFC 4716/SSH2 public or private key),
|
|
``PKCS8''
|
|
|
|
(PKCS8 public or private key)
|
|
or
|
|
``PEM''
|
|
|
|
(PEM public key).
|
|
By default OpenSSH will write newly-generated private keys in its own
|
|
format, but when converting public keys for export the default format is
|
|
``RFC4716''
|
|
|
|
|
|
Setting a format of
|
|
``PEM''
|
|
|
|
when generating or updating a supported private key type will cause the
|
|
key to be stored in the legacy PEM private key format.
|
|
<DT id="24"><B>-N </B><I>new_passphrase</I>
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Provides the new passphrase.
|
|
<DT id="25"><B>-n </B><I>principals</I>
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Specify one or more principals (user or host names) to be included in
|
|
a certificate when signing a key.
|
|
Multiple principals may be specified, separated by commas.
|
|
Please see the
|
|
Sx CERTIFICATES
|
|
|
|
section for details.
|
|
<DT id="26"><B>-O </B><I>option</I>
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Specify a key/value option.
|
|
These are specific to the operation that
|
|
<B>ssh-keygen</B>
|
|
|
|
|
|
has been requested to perform.
|
|
<P>
|
|
|
|
When signing certificates, one of the options listed in the
|
|
Sx CERTIFICATES
|
|
|
|
section may be specified here.
|
|
<P>
|
|
|
|
When performing moduli generation or screening, one of the options
|
|
listed in the
|
|
Sx MODULI GENERATION
|
|
|
|
section may be specified.
|
|
<P>
|
|
|
|
When generating a key that will be hosted on a FIDO authenticator,
|
|
this flag may be used to specify key-specific options.
|
|
Those supported at present are:
|
|
<DL COMPACT>
|
|
<P>
|
|
|
|
<DT id="27"><B>application</B>
|
|
|
|
|
|
<DD>
|
|
Override the default FIDO application/origin string of
|
|
``ssh:''
|
|
|
|
|
|
This may be useful when generating host or domain-specific resident keys.
|
|
The specified application string must begin with
|
|
``ssh:''
|
|
|
|
|
|
<DT id="28"><B>challenge = </B><I>path</I>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Specifies a path to a challenge string that will be passed to the
|
|
FIDO token during key generation.
|
|
The challenge string may be used as part of an out-of-band
|
|
protocol for key enrollment
|
|
(a random challenge is used by default).
|
|
<DT id="29"><B>device</B>
|
|
|
|
|
|
<DD>
|
|
Explicitly specify a
|
|
<A HREF="/cgi-bin/man/man2html?4+fido">fido</A>(4)
|
|
|
|
|
|
device to use, rather than letting the token middleware select one.
|
|
<DT id="30"><B>no-touch-required</B>
|
|
|
|
|
|
<DD>
|
|
Indicate that the generated private key should not require touch
|
|
events (user presence) when making signatures.
|
|
Note that
|
|
<A HREF="/cgi-bin/man/man2html?8+sshd">sshd</A>(8)
|
|
|
|
|
|
will refuse such signatures by default, unless overridden via
|
|
an authorized_keys option.
|
|
<DT id="31"><B>resident</B>
|
|
|
|
|
|
<DD>
|
|
Indicate that the key should be stored on the FIDO authenticator itself.
|
|
Resident keys may be supported on FIDO2 tokens and typically require that
|
|
a PIN be set on the token prior to generation.
|
|
Resident keys may be loaded off the token using
|
|
ssh-add1.
|
|
|
|
|
|
<DT id="32"><B>user</B>
|
|
|
|
|
|
<DD>
|
|
A username to be associated with a resident key,
|
|
overriding the empty default username.
|
|
Specifying a username may be useful when generating multiple resident keys
|
|
for the same application name.
|
|
<DT id="33"><B>write-attestation = </B><I>path</I>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
May be used at key generation time to record the attestation certificate
|
|
returned from FIDO tokens during key generation.
|
|
By default this information is discarded.
|
|
</DL>
|
|
<P>
|
|
|
|
<P>
|
|
|
|
The
|
|
-<B>O</B>
|
|
|
|
option may be specified multiple times.
|
|
<DT id="34"><B>-P </B><I>passphrase</I>
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Provides the (old) passphrase.
|
|
<DT id="35"><B>-p</B>
|
|
|
|
|
|
<DD>
|
|
Requests changing the passphrase of a private key file instead of
|
|
creating a new private key.
|
|
The program will prompt for the file
|
|
containing the private key, for the old passphrase, and twice for the
|
|
new passphrase.
|
|
<DT id="36"><B>-Q</B>
|
|
|
|
|
|
<DD>
|
|
Test whether keys have been revoked in a KRL.
|
|
<DT id="37"><B>-q</B>
|
|
|
|
|
|
<DD>
|
|
Silence
|
|
<B>ssh-keygen</B>
|
|
|
|
|
|
<DT id="38"><B>-R </B><I>hostname | [hostname]:port</I>
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Removes all keys belonging to the specified
|
|
<I>hostname</I>
|
|
|
|
(with optional port number)
|
|
from a
|
|
known_hosts
|
|
|
|
file.
|
|
This option is useful to delete hashed hosts (see the
|
|
-<B>H</B>
|
|
|
|
option above).
|
|
<DT id="39"><B>-r </B><I>hostname</I>
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Print the SSHFP fingerprint resource record named
|
|
<I>hostname</I>
|
|
|
|
for the specified public key file.
|
|
<DT id="40"><B>-s </B><I>ca_key</I>
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Certify (sign) a public key using the specified CA key.
|
|
Please see the
|
|
Sx CERTIFICATES
|
|
|
|
section for details.
|
|
<P>
|
|
|
|
When generating a KRL,
|
|
-<B>s</B>
|
|
|
|
specifies a path to a CA public key file used to revoke certificates directly
|
|
by key ID or serial number.
|
|
See the
|
|
Sx KEY REVOCATION LISTS
|
|
|
|
section for details.
|
|
<DT id="41"><B>-t dsa | ecdsa | ecdsa-sk | ed25519 | ed25519-sk | rsa</B>
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Specifies the type of key to create.
|
|
The possible values are
|
|
``dsa''
|
|
|
|
|
|
``ecdsa''
|
|
|
|
|
|
``ecdsa-sk''
|
|
|
|
|
|
``ed25519''
|
|
|
|
|
|
``ed25519-sk''
|
|
|
|
|
|
or
|
|
``rsa''
|
|
|
|
|
|
<P>
|
|
|
|
This flag may also be used to specify the desired signature type when
|
|
signing certificates using an RSA CA key.
|
|
The available RSA signature variants are
|
|
``ssh-rsa''
|
|
|
|
(SHA1 signatures, not recommended),
|
|
``rsa-sha2-256''
|
|
|
|
|
|
and
|
|
``rsa-sha2-512''
|
|
|
|
(the default).
|
|
<DT id="42"><B>-U</B>
|
|
|
|
|
|
<DD>
|
|
When used in combination with
|
|
-<B>s</B>
|
|
|
|
|
|
this option indicates that a CA key resides in a
|
|
ssh-agent1.
|
|
|
|
|
|
See the
|
|
Sx CERTIFICATES
|
|
|
|
section for more information.
|
|
<DT id="43"><B>-u</B>
|
|
|
|
|
|
<DD>
|
|
Update a KRL.
|
|
When specified with
|
|
-<B>k</B>
|
|
|
|
|
|
keys listed via the command line are added to the existing KRL rather than
|
|
a new KRL being created.
|
|
<DT id="44"><B>-V </B><I>validity_interval</I>
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Specify a validity interval when signing a certificate.
|
|
A validity interval may consist of a single time, indicating that the
|
|
certificate is valid beginning now and expiring at that time, or may consist
|
|
of two times separated by a colon to indicate an explicit time interval.
|
|
<P>
|
|
|
|
The start time may be specified as the string
|
|
``always''
|
|
|
|
to indicate the certificate has no specified start time,
|
|
a date in YYYYMMDD format, a time in YYYYMMDDHHMM[SS] format,
|
|
a relative time (to the current time) consisting of a minus sign followed by
|
|
an interval in the format described in the
|
|
TIME FORMATS section of
|
|
sshd_config5.
|
|
|
|
|
|
<P>
|
|
|
|
The end time may be specified as a YYYYMMDD date, a YYYYMMDDHHMM[SS] time,
|
|
a relative time starting with a plus character or the string
|
|
``forever''
|
|
|
|
to indicate that the certificate has no expirty date.
|
|
<P>
|
|
|
|
For example:
|
|
``+52w1d''
|
|
|
|
(valid from now to 52 weeks and one day from now),
|
|
``-4w:+4w''
|
|
|
|
(valid from four weeks ago to four weeks from now),
|
|
``20100101123000:20110101123000''
|
|
|
|
(valid from 12:30 PM, January 1st, 2010 to 12:30 PM, January 1st, 2011),
|
|
``-1d:20110101''
|
|
|
|
(valid from yesterday to midnight, January 1st, 2011).
|
|
``-1m:forever''
|
|
|
|
(valid from one minute ago and never expiring).
|
|
<DT id="45"><B>-v</B>
|
|
|
|
|
|
<DD>
|
|
Verbose mode.
|
|
Causes
|
|
<B>ssh-keygen</B>
|
|
|
|
|
|
to print debugging messages about its progress.
|
|
This is helpful for debugging moduli generation.
|
|
Multiple
|
|
-<B>v</B>
|
|
|
|
options increase the verbosity.
|
|
The maximum is 3.
|
|
<DT id="46"><B>-w </B><I>provider</I>
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Specifies a path to a library that will be used when creating
|
|
FIDO authenticator-hosted keys, overriding the default of using
|
|
the internal USB HID support.
|
|
<DT id="47"><B>-Y find-principals</B>
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Find the principal(s) associated with the public key of a signature,
|
|
provided using the
|
|
-<B>s</B>
|
|
|
|
flag in an authorized signers file provided using the
|
|
-<B>f</B>
|
|
|
|
flag.
|
|
The format of the allowed signers file is documented in the
|
|
Sx ALLOWED SIGNERS
|
|
|
|
section below.
|
|
If one or more matching principals are found, they are returned on
|
|
standard output.
|
|
<DT id="48"><B>-Y check-novalidate</B>
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Checks that a signature generated using
|
|
<B>ssh-keygen</B>
|
|
|
|
|
|
-<B>Y sign</B>
|
|
|
|
|
|
|
|
has a valid structure.
|
|
This does not validate if a signature comes from an authorized signer.
|
|
When testing a signature,
|
|
<B>ssh-keygen</B>
|
|
|
|
|
|
accepts a message on standard input and a signature namespace using
|
|
-<B>n</B>
|
|
|
|
|
|
A file containing the corresponding signature must also be supplied using the
|
|
-<B>s</B>
|
|
|
|
flag.
|
|
Successful testing of the signature is signalled by
|
|
<B>ssh-keygen</B>
|
|
|
|
|
|
returning a zero exit status.
|
|
<DT id="49"><B>-Y sign</B>
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Cryptographically sign a file or some data using a SSH key.
|
|
When signing,
|
|
<B>ssh-keygen</B>
|
|
|
|
|
|
accepts zero or more files to sign on the command-line - if no files
|
|
are specified then
|
|
<B>ssh-keygen</B>
|
|
|
|
|
|
will sign data presented on standard input.
|
|
Signatures are written to the path of the input file with
|
|
``.sig''
|
|
|
|
appended, or to standard output if the message to be signed was read from
|
|
standard input.
|
|
<P>
|
|
|
|
The key used for signing is specified using the
|
|
-<B>f</B>
|
|
|
|
option and may refer to either a private key, or a public key with the private
|
|
half available via
|
|
ssh-agent1.
|
|
|
|
|
|
An additional signature namespace, used to prevent signature confusion across
|
|
different domains of use (e.g. file signing vs email signing) must be provided
|
|
via the
|
|
-<B>n</B>
|
|
|
|
flag.
|
|
Namespaces are arbitrary strings, and may include:
|
|
``file''
|
|
|
|
for file signing,
|
|
``email''
|
|
|
|
for email signing.
|
|
For custom uses, it is recommended to use names following a
|
|
<A HREF="mailto:NAMESPACE@YOUR.DOMAIN">NAMESPACE@YOUR.DOMAIN</A> pattern to generate unambiguous namespaces.
|
|
<DT id="50"><B>-Y verify</B>
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Request to verify a signature generated using
|
|
<B>ssh-keygen</B>
|
|
|
|
|
|
-<B>Y sign</B>
|
|
|
|
|
|
|
|
as described above.
|
|
When verifying a signature,
|
|
<B>ssh-keygen</B>
|
|
|
|
|
|
accepts a message on standard input and a signature namespace using
|
|
-<B>n</B>
|
|
|
|
|
|
A file containing the corresponding signature must also be supplied using the
|
|
-<B>s</B>
|
|
|
|
flag, along with the identity of the signer using
|
|
-<B>I</B>
|
|
|
|
and a list of allowed signers via the
|
|
-<B>f</B>
|
|
|
|
flag.
|
|
The format of the allowed signers file is documented in the
|
|
Sx ALLOWED SIGNERS
|
|
|
|
section below.
|
|
A file containing revoked keys can be passed using the
|
|
-<B>r</B>
|
|
|
|
flag.
|
|
The revocation file may be a KRL or a one-per-line list of public keys.
|
|
Successful verification by an authorized signer is signalled by
|
|
<B>ssh-keygen</B>
|
|
|
|
|
|
returning a zero exit status.
|
|
<DT id="51"><B>-y</B>
|
|
|
|
|
|
<DD>
|
|
This option will read a private
|
|
OpenSSH format file and print an OpenSSH public key to stdout.
|
|
<DT id="52"><B>-z </B><I>serial_number</I>
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Specifies a serial number to be embedded in the certificate to distinguish
|
|
this certificate from others from the same CA.
|
|
If the
|
|
<I>serial_number</I>
|
|
|
|
is prefixed with a
|
|
`+'
|
|
|
|
character, then the serial number will be incremented for each certificate
|
|
signed on a single command-line.
|
|
The default serial number is zero.
|
|
<P>
|
|
|
|
When generating a KRL, the
|
|
-<B>z</B>
|
|
|
|
flag is used to specify a KRL version number.
|
|
</DL>
|
|
<P>
|
|
|
|
<A NAME="lbAE"> </A>
|
|
<H2>MODULI GENERATION</H2>
|
|
|
|
<B>ssh-keygen</B>
|
|
|
|
|
|
may be used to generate groups for the Diffie-Hellman Group Exchange
|
|
(DH-GEX) protocol.
|
|
Generating these groups is a two-step process: first, candidate
|
|
primes are generated using a fast, but memory intensive process.
|
|
These candidate primes are then tested for suitability (a CPU-intensive
|
|
process).
|
|
<P>
|
|
|
|
Generation of primes is performed using the
|
|
-<B>M generate</B>
|
|
|
|
|
|
|
|
option.
|
|
The desired length of the primes may be specified by the
|
|
-<B>O bits</B>
|
|
|
|
|
|
|
|
option.
|
|
For example:
|
|
<P>
|
|
|
|
|
|
<BLOCKQUOTE><TT># ssh-keygen -M generate -O bits=2048 moduli-2048.candidates</TT></BLOCKQUOTE>
|
|
<P>
|
|
|
|
By default, the search for primes begins at a random point in the
|
|
desired length range.
|
|
This may be overridden using the
|
|
-<B>O start</B>
|
|
|
|
|
|
|
|
option, which specifies a different start point (in hex).
|
|
<P>
|
|
|
|
Once a set of candidates have been generated, they must be screened for
|
|
suitability.
|
|
This may be performed using the
|
|
-<B>M screen</B>
|
|
|
|
|
|
|
|
option.
|
|
In this mode
|
|
<B>ssh-keygen</B>
|
|
|
|
|
|
will read candidates from standard input (or a file specified using the
|
|
-<B>f</B>
|
|
|
|
option).
|
|
For example:
|
|
<P>
|
|
|
|
|
|
<BLOCKQUOTE><TT># ssh-keygen -M screen -f moduli-2048.candidates moduli-2048</TT></BLOCKQUOTE>
|
|
<P>
|
|
|
|
By default, each candidate will be subjected to 100 primality tests.
|
|
This may be overridden using the
|
|
-<B>O prime-tests</B>
|
|
|
|
|
|
|
|
option.
|
|
The DH generator value will be chosen automatically for the
|
|
prime under consideration.
|
|
If a specific generator is desired, it may be requested using the
|
|
-<B>O generator</B>
|
|
|
|
|
|
|
|
option.
|
|
Valid generator values are 2, 3, and 5.
|
|
<P>
|
|
|
|
Screened DH groups may be installed in
|
|
/etc/ssh/moduli
|
|
|
|
|
|
It is important that this file contains moduli of a range of bit lengths and
|
|
that both ends of a connection share common moduli.
|
|
<P>
|
|
|
|
A number of options are available for moduli generation and screening via the
|
|
-<B>O</B>
|
|
|
|
flag:
|
|
<DL COMPACT>
|
|
<P>
|
|
|
|
<DT id="53"><B>lines = </B><I>number</I>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Exit after screening the specified number of lines while performing DH
|
|
candidate screening.
|
|
<DT id="54"><B>start-line = </B><I>line-number</I>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Start screening at the specified line number while performing DH candidate
|
|
screening.
|
|
<DT id="55"><B>checkpoint = </B><I>filename</I>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Write the last line processed to the specified file while performing DH
|
|
candidate screening.
|
|
This will be used to skip lines in the input file that have already been
|
|
processed if the job is restarted.
|
|
<DT id="56"><B>memory = </B><I>mbytes</I>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Specify the amount of memory to use (in megabytes) when generating
|
|
candidate moduli for DH-GEX.
|
|
<DT id="57"><B>start = </B><I>hex-value</I>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Specify start point (in hex) when generating candidate moduli for DH-GEX.
|
|
<DT id="58"><B>generator = </B><I>value</I>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Specify desired generator (in decimal) when testing candidate moduli for DH-GEX.
|
|
</DL>
|
|
<P>
|
|
|
|
<A NAME="lbAF"> </A>
|
|
<H2>CERTIFICATES</H2>
|
|
|
|
<B>ssh-keygen</B>
|
|
|
|
|
|
supports signing of keys to produce certificates that may be used for
|
|
user or host authentication.
|
|
Certificates consist of a public key, some identity information, zero or
|
|
more principal (user or host) names and a set of options that
|
|
are signed by a Certification Authority (CA) key.
|
|
Clients or servers may then trust only the CA key and verify its signature
|
|
on a certificate rather than trusting many user/host keys.
|
|
Note that OpenSSH certificates are a different, and much simpler, format to
|
|
the X.509 certificates used in
|
|
<A HREF="/cgi-bin/man/man2html?8+ssl">ssl</A>(8).
|
|
|
|
|
|
<P>
|
|
|
|
<B>ssh-keygen</B>
|
|
|
|
|
|
supports two types of certificates: user and host.
|
|
User certificates authenticate users to servers, whereas host certificates
|
|
authenticate server hosts to users.
|
|
To generate a user certificate:
|
|
<P>
|
|
|
|
|
|
<BLOCKQUOTE><TT>$ ssh-keygen -s /path/to/ca_key -I key_id /path/to/user_key.pub</TT></BLOCKQUOTE>
|
|
<P>
|
|
|
|
The resultant certificate will be placed in
|
|
/path/to/user_key-cert.pub
|
|
|
|
|
|
A host certificate requires the
|
|
-<B>h</B>
|
|
|
|
option:
|
|
<P>
|
|
|
|
|
|
<BLOCKQUOTE><TT>$ ssh-keygen -s /path/to/ca_key -I key_id -h /path/to/host_key.pub</TT></BLOCKQUOTE>
|
|
<P>
|
|
|
|
The host certificate will be output to
|
|
/path/to/host_key-cert.pub
|
|
|
|
|
|
<P>
|
|
|
|
It is possible to sign using a CA key stored in a PKCS#11 token by
|
|
providing the token library using
|
|
-<B>D</B>
|
|
|
|
and identifying the CA key by providing its public half as an argument
|
|
to
|
|
-<B>s</B>
|
|
|
|
|
|
<P>
|
|
|
|
|
|
<BLOCKQUOTE><TT>$ ssh-keygen -s ca_key.pub -D libpkcs11.so -I key_id user_key.pub</TT></BLOCKQUOTE>
|
|
<P>
|
|
|
|
Similarly, it is possible for the CA key to be hosted in a
|
|
ssh-agent1.
|
|
|
|
|
|
This is indicated by the
|
|
-<B>U</B>
|
|
|
|
flag and, again, the CA key must be identified by its public half.
|
|
<P>
|
|
|
|
|
|
<BLOCKQUOTE><TT>$ ssh-keygen -Us </TT>ca_key.pub -I key_id user_key.pub
|
|
|
|
</BLOCKQUOTE>
|
|
<P>
|
|
|
|
In all cases,
|
|
<I>key_id</I>
|
|
|
|
is a "key identifier" that is logged by the server when the certificate
|
|
is used for authentication.
|
|
<P>
|
|
|
|
Certificates may be limited to be valid for a set of principal (user/host)
|
|
names.
|
|
By default, generated certificates are valid for all users or hosts.
|
|
To generate a certificate for a specified set of principals:
|
|
<P>
|
|
|
|
|
|
<BLOCKQUOTE><TT>$ ssh-keygen -s ca_key -I key_id -n user1,user2 user_key.pub</TT></BLOCKQUOTE>
|
|
|
|
<BLOCKQUOTE><TT>"$ ssh-keygen -s ca_key -I key_id -h -n host.domain host_key.pub"</TT></BLOCKQUOTE>
|
|
<P>
|
|
|
|
Additional limitations on the validity and use of user certificates may
|
|
be specified through certificate options.
|
|
A certificate option may disable features of the SSH session, may be
|
|
valid only when presented from particular source addresses or may
|
|
force the use of a specific command.
|
|
<P>
|
|
|
|
The options that are valid for user certificates are:
|
|
<P>
|
|
|
|
<DL COMPACT>
|
|
<P>
|
|
|
|
<DT id="59"><B>clear</B>
|
|
|
|
|
|
<DD>
|
|
Clear all enabled permissions.
|
|
This is useful for clearing the default set of permissions so permissions may
|
|
be added individually.
|
|
<P>
|
|
|
|
<DT id="60"><B>critical : </B><I>name </I><B></B>[<B>= </B><I>contents</I>
|
|
|
|
|
|
|
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
<DT id="61"><B>extension : </B><I>name </I><B></B>[<B>= </B><I>contents</I>
|
|
|
|
|
|
|
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Includes an arbitrary certificate critical option or extension.
|
|
The specified
|
|
<I>name</I>
|
|
|
|
should include a domain suffix, e.g.
|
|
``<A HREF="mailto:name@example.com">name@example.com</A>''
|
|
|
|
|
|
If
|
|
<I>contents</I>
|
|
|
|
is specified then it is included as the contents of the extension/option
|
|
encoded as a string, otherwise the extension/option is created with no
|
|
contents (usually indicating a flag).
|
|
Extensions may be ignored by a client or server that does not recognise them,
|
|
whereas unknown critical options will cause the certificate to be refused.
|
|
<P>
|
|
|
|
<DT id="62"><B>force-command = </B><I>command</I>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Forces the execution of
|
|
<I>command</I>
|
|
|
|
instead of any shell or command specified by the user when
|
|
the certificate is used for authentication.
|
|
<P>
|
|
|
|
<DT id="63"><B>no-agent-forwarding</B>
|
|
|
|
|
|
<DD>
|
|
Disable
|
|
ssh-agent1
|
|
|
|
|
|
forwarding (permitted by default).
|
|
<P>
|
|
|
|
<DT id="64"><B>no-port-forwarding</B>
|
|
|
|
|
|
<DD>
|
|
Disable port forwarding (permitted by default).
|
|
<P>
|
|
|
|
<DT id="65"><B>no-pty</B>
|
|
|
|
|
|
<DD>
|
|
Disable PTY allocation (permitted by default).
|
|
<P>
|
|
|
|
<DT id="66"><B>no-user-rc</B>
|
|
|
|
|
|
<DD>
|
|
Disable execution of
|
|
~/.ssh/rc
|
|
|
|
by
|
|
<A HREF="/cgi-bin/man/man2html?8+sshd">sshd</A>(8)
|
|
|
|
|
|
(permitted by default).
|
|
<P>
|
|
|
|
<DT id="67"><B>no-x11-forwarding</B>
|
|
|
|
|
|
<DD>
|
|
Disable X11 forwarding (permitted by default).
|
|
<P>
|
|
|
|
<DT id="68"><B>permit-agent-forwarding</B>
|
|
|
|
|
|
<DD>
|
|
Allows
|
|
ssh-agent1
|
|
|
|
|
|
forwarding.
|
|
<P>
|
|
|
|
<DT id="69"><B>permit-port-forwarding</B>
|
|
|
|
|
|
<DD>
|
|
Allows port forwarding.
|
|
<P>
|
|
|
|
<DT id="70"><B>permit-pty</B>
|
|
|
|
|
|
<DD>
|
|
Allows PTY allocation.
|
|
<P>
|
|
|
|
<DT id="71"><B>permit-user-rc</B>
|
|
|
|
|
|
<DD>
|
|
Allows execution of
|
|
~/.ssh/rc
|
|
|
|
by
|
|
<A HREF="/cgi-bin/man/man2html?8+sshd">sshd</A>(8).
|
|
|
|
|
|
<P>
|
|
|
|
<DT id="72"><B>permit-X11-forwarding</B>
|
|
|
|
|
|
<DD>
|
|
Allows X11 forwarding.
|
|
<P>
|
|
|
|
<DT id="73"><B>no-touch-required</B>
|
|
|
|
|
|
<DD>
|
|
Do not require signatures made using this key require demonstration
|
|
of user presence (e.g. by having the user touch the authenticator).
|
|
This option only makes sense for the FIDO authenticator algorithms
|
|
<B>ecdsa-sk</B>
|
|
|
|
and
|
|
<B>ed25519-sk</B>
|
|
|
|
|
|
<P>
|
|
|
|
<DT id="74"><B>source-address = </B><I>address_list</I>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Restrict the source addresses from which the certificate is considered valid.
|
|
The
|
|
<I>address_list</I>
|
|
|
|
is a comma-separated list of one or more address/netmask pairs in CIDR
|
|
format.
|
|
</DL>
|
|
<P>
|
|
|
|
<P>
|
|
|
|
At present, no standard options are valid for host keys.
|
|
<P>
|
|
|
|
Finally, certificates may be defined with a validity lifetime.
|
|
The
|
|
-<B>V</B>
|
|
|
|
option allows specification of certificate start and end times.
|
|
A certificate that is presented at a time outside this range will not be
|
|
considered valid.
|
|
By default, certificates are valid from
|
|
UNIX
|
|
Epoch to the distant future.
|
|
<P>
|
|
|
|
For certificates to be used for user or host authentication, the CA
|
|
public key must be trusted by
|
|
<A HREF="/cgi-bin/man/man2html?8+sshd">sshd</A>(8)
|
|
|
|
|
|
or
|
|
<A HREF="/cgi-bin/man/man2html?1+ssh">ssh</A>(1).
|
|
|
|
|
|
Please refer to those manual pages for details.
|
|
<A NAME="lbAG"> </A>
|
|
<H2>KEY REVOCATION LISTS</H2>
|
|
|
|
<B>ssh-keygen</B>
|
|
|
|
|
|
is able to manage OpenSSH format Key Revocation Lists (KRLs).
|
|
These binary files specify keys or certificates to be revoked using a
|
|
compact format, taking as little as one bit per certificate if they are being
|
|
revoked by serial number.
|
|
<P>
|
|
|
|
KRLs may be generated using the
|
|
-<B>k</B>
|
|
|
|
flag.
|
|
This option reads one or more files from the command line and generates a new
|
|
KRL.
|
|
The files may either contain a KRL specification (see below) or public keys,
|
|
listed one per line.
|
|
Plain public keys are revoked by listing their hash or contents in the KRL and
|
|
certificates revoked by serial number or key ID (if the serial is zero or
|
|
not available).
|
|
<P>
|
|
|
|
Revoking keys using a KRL specification offers explicit control over the
|
|
types of record used to revoke keys and may be used to directly revoke
|
|
certificates by serial number or key ID without having the complete original
|
|
certificate on hand.
|
|
A KRL specification consists of lines containing one of the following directives
|
|
followed by a colon and some directive-specific information.
|
|
<DL COMPACT>
|
|
<P>
|
|
|
|
<DT id="75"><B>serial : </B><I>serial_number </I><B></B>[- <B></B><I>serial_number</I>
|
|
|
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Revokes a certificate with the specified serial number.
|
|
Serial numbers are 64-bit values, not including zero and may be expressed
|
|
in decimal, hex or octal.
|
|
If two serial numbers are specified separated by a hyphen, then the range
|
|
of serial numbers including and between each is revoked.
|
|
The CA key must have been specified on the
|
|
<B>ssh-keygen</B>
|
|
|
|
|
|
command line using the
|
|
-<B>s</B>
|
|
|
|
option.
|
|
<DT id="76"><B>id : </B><I>key_id</I>
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Revokes a certificate with the specified key ID string.
|
|
The CA key must have been specified on the
|
|
<B>ssh-keygen</B>
|
|
|
|
|
|
command line using the
|
|
-<B>s</B>
|
|
|
|
option.
|
|
<DT id="77"><B>key : </B><I>public_key</I>
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Revokes the specified key.
|
|
If a certificate is listed, then it is revoked as a plain public key.
|
|
<DT id="78"><B>sha1 : </B><I>public_key</I>
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Revokes the specified key by including its SHA1 hash in the KRL.
|
|
<DT id="79"><B>sha256 : </B><I>public_key</I>
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Revokes the specified key by including its SHA256 hash in the KRL.
|
|
KRLs that revoke keys by SHA256 hash are not supported by OpenSSH versions
|
|
prior to 7.9.
|
|
<DT id="80"><B>hash : </B><I>fingerprint</I>
|
|
|
|
|
|
|
|
|
|
<DD>
|
|
Revokes a key using a fingerprint hash, as obtained from a
|
|
<A HREF="/cgi-bin/man/man2html?8+sshd">sshd</A>(8)
|
|
|
|
|
|
authentication log message or the
|
|
<B>ssh-keygen</B>
|
|
|
|
|
|
-<B>l</B>
|
|
|
|
flag.
|
|
Only SHA256 fingerprints are supported here and resultant KRLs are
|
|
not supported by OpenSSH versions prior to 7.9.
|
|
</DL>
|
|
<P>
|
|
|
|
<P>
|
|
|
|
KRLs may be updated using the
|
|
-<B>u</B>
|
|
|
|
flag in addition to
|
|
-<B>k</B>
|
|
|
|
|
|
When this option is specified, keys listed via the command line are merged into
|
|
the KRL, adding to those already there.
|
|
<P>
|
|
|
|
It is also possible, given a KRL, to test whether it revokes a particular key
|
|
(or keys).
|
|
The
|
|
-<B>Q</B>
|
|
|
|
flag will query an existing KRL, testing each key specified on the command line.
|
|
If any key listed on the command line has been revoked (or an error encountered)
|
|
then
|
|
<B>ssh-keygen</B>
|
|
|
|
|
|
will exit with a non-zero exit status.
|
|
A zero exit status will only be returned if no key was revoked.
|
|
<A NAME="lbAH"> </A>
|
|
<H2>ALLOWED SIGNERS</H2>
|
|
|
|
When verifying signatures,
|
|
<B>ssh-keygen</B>
|
|
|
|
|
|
uses a simple list of identities and keys to determine whether a signature
|
|
comes from an authorized source.
|
|
This "allowed signers" file uses a format patterned after the
|
|
AUTHORIZED_KEYS FILE FORMAT described in
|
|
<A HREF="/cgi-bin/man/man2html?8+sshd">sshd</A>(8).
|
|
|
|
|
|
Each line of the file contains the following space-separated fields:
|
|
principals, options, keytype, base64-encoded key.
|
|
Empty lines and lines starting with a
|
|
`#'
|
|
|
|
are ignored as comments.
|
|
<P>
|
|
|
|
The principals field is a pattern-list (See PATTERNS in
|
|
ssh_config5)
|
|
|
|
|
|
consisting of one or more comma-separated <A HREF="mailto:USER@DOMAIN">USER@DOMAIN</A> identity patterns
|
|
that are accepted for signing.
|
|
When verifying, the identity presented via the
|
|
-<B>I</B>
|
|
|
|
option must match a principals pattern in order for the corresponding key to be
|
|
considered acceptable for verification.
|
|
<P>
|
|
|
|
The options (if present) consist of comma-separated option specifications.
|
|
No spaces are permitted, except within double quotes.
|
|
The following option specifications are supported (note that option keywords
|
|
are case-insensitive):
|
|
<DL COMPACT>
|
|
<P>
|
|
|
|
<DT id="81"><B>cert-authority</B>
|
|
|
|
|
|
<DD>
|
|
Indicates that this key is accepted as a certificate authority (CA) and
|
|
that certificates signed by this CA may be accepted for verification.
|
|
<DT id="82"><B>namespaces=namespace-list</B>
|
|
|
|
|
|
<DD>
|
|
Specifies a pattern-list of namespaces that are accepted for this key.
|
|
If this option is present, the signature namespace embedded in the
|
|
signature object and presented on the verification command-line must
|
|
match the specified list before the key will be considered acceptable.
|
|
</DL>
|
|
<P>
|
|
|
|
<P>
|
|
|
|
When verifying signatures made by certificates, the expected principal
|
|
name must match both the principals pattern in the allowed signers file and
|
|
the principals embedded in the certificate itself.
|
|
<P>
|
|
|
|
An example allowed signers file:
|
|
|
|
<PRE>
|
|
# Comments allowed at start of line
|
|
<A HREF="mailto:user1@example.com">user1@example.com</A>,<A HREF="mailto:user2@example.com">user2@example.com</A> ssh-rsa AAAAX1...
|
|
# A certificate authority, trusted for all principals in a domain.
|
|
*@example.com cert-authority ssh-ed25519 AAAB4...
|
|
# A key that is accepted only for file signing.
|
|
<A HREF="mailto:user2@example.com">user2@example.com</A> namespaces="file" ssh-ed25519 AAA41...
|
|
</PRE>
|
|
|
|
<A NAME="lbAI"> </A>
|
|
<H2>ENVIRONMENT</H2>
|
|
|
|
<DL COMPACT>
|
|
<P>
|
|
|
|
<DT id="83"><B>SSH_SK_PROVIDER</B>
|
|
|
|
|
|
<DD>
|
|
Specifies a path to a library that will be used when loading any
|
|
FIDO authenticator-hosted keys, overriding the default of using
|
|
the built-in USB HID support.
|
|
</DL>
|
|
<P>
|
|
|
|
<A NAME="lbAJ"> </A>
|
|
<H2>FILES</H2>
|
|
|
|
<DL COMPACT>
|
|
<P>
|
|
|
|
<DT id="84"><B>~/.ssh/id_dsa
|
|
|
|
</B>
|
|
<DD>
|
|
<DT id="85"><B>~/.ssh/id_ecdsa
|
|
|
|
</B>
|
|
<DD>
|
|
<DT id="86"><B>~/.ssh/id_ecdsa_sk
|
|
|
|
</B>
|
|
<DD>
|
|
<DT id="87"><B>~/.ssh/id_ed25519
|
|
|
|
</B>
|
|
<DD>
|
|
<DT id="88"><B>~/.ssh/id_ed25519_sk
|
|
|
|
</B>
|
|
<DD>
|
|
<DT id="89"><B>~/.ssh/id_rsa
|
|
|
|
</B>
|
|
<DD>
|
|
Contains the DSA, ECDSA, authenticator-hosted ECDSA, Ed25519,
|
|
authenticator-hosted Ed25519 or RSA authentication identity of the user.
|
|
This file should not be readable by anyone but the user.
|
|
It is possible to
|
|
specify a passphrase when generating the key; that passphrase will be
|
|
used to encrypt the private part of this file using 128-bit AES.
|
|
This file is not automatically accessed by
|
|
<B>ssh-keygen</B>
|
|
|
|
|
|
but it is offered as the default file for the private key.
|
|
<A HREF="/cgi-bin/man/man2html?1+ssh">ssh</A>(1)
|
|
|
|
|
|
will read this file when a login attempt is made.
|
|
<P>
|
|
|
|
<DT id="90"><B>~/.ssh/id_dsa.pub
|
|
|
|
</B>
|
|
<DD>
|
|
<DT id="91"><B>~/.ssh/id_ecdsa.pub
|
|
|
|
</B>
|
|
<DD>
|
|
<DT id="92"><B>~/.ssh/id_ecdsa_sk.pub
|
|
|
|
</B>
|
|
<DD>
|
|
<DT id="93"><B>~/.ssh/id_ed25519.pub
|
|
|
|
</B>
|
|
<DD>
|
|
<DT id="94"><B>~/.ssh/id_ed25519_sk.pub
|
|
|
|
</B>
|
|
<DD>
|
|
<DT id="95"><B>~/.ssh/id_rsa.pub
|
|
|
|
</B>
|
|
<DD>
|
|
Contains the DSA, ECDSA, authenticator-hosted ECDSA, Ed25519,
|
|
authenticator-hosted Ed25519 or RSA public key for authentication.
|
|
The contents of this file should be added to
|
|
~/.ssh/authorized_keys
|
|
|
|
on all machines
|
|
where the user wishes to log in using public key authentication.
|
|
There is no need to keep the contents of this file secret.
|
|
<P>
|
|
|
|
<DT id="96"><B>/etc/ssh/moduli
|
|
|
|
</B>
|
|
<DD>
|
|
Contains Diffie-Hellman groups used for DH-GEX.
|
|
The file format is described in
|
|
<A HREF="/cgi-bin/man/man2html?5+moduli">moduli</A>(5).
|
|
|
|
|
|
</DL>
|
|
<P>
|
|
|
|
<A NAME="lbAK"> </A>
|
|
<H2>SEE ALSO</H2>
|
|
|
|
<A HREF="/cgi-bin/man/man2html?1+ssh">ssh</A>(1),
|
|
|
|
|
|
ssh-add1,
|
|
|
|
|
|
ssh-agent1,
|
|
|
|
|
|
<A HREF="/cgi-bin/man/man2html?5+moduli">moduli</A>(5),
|
|
|
|
|
|
<A HREF="/cgi-bin/man/man2html?8+sshd">sshd</A>(8)
|
|
|
|
|
|
<DL COMPACT><DT id="97"><DD>
|
|
<I>RFC 4716</I>
|
|
<I>"The Secure Shell (SSH) Public Key File Format"</I>
|
|
2006
|
|
</DL>
|
|
|
|
<A NAME="lbAL"> </A>
|
|
<H2>AUTHORS</H2>
|
|
|
|
OpenSSH is a derivative of the original and free
|
|
ssh 1.2.12 release by Tatu Ylonen.
|
|
Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos,
|
|
Theo de Raadt and Dug Song
|
|
removed many bugs, re-added newer features and
|
|
created OpenSSH.
|
|
Markus Friedl contributed the support for SSH
|
|
protocol versions 1.5 and 2.0.
|
|
<P>
|
|
|
|
<HR>
|
|
<A NAME="index"> </A><H2>Index</H2>
|
|
<DL>
|
|
<DT id="98"><A HREF="#lbAB">NAME</A><DD>
|
|
<DT id="99"><A HREF="#lbAC">SYNOPSIS</A><DD>
|
|
<DT id="100"><A HREF="#lbAD">DESCRIPTION</A><DD>
|
|
<DT id="101"><A HREF="#lbAE">MODULI GENERATION</A><DD>
|
|
<DT id="102"><A HREF="#lbAF">CERTIFICATES</A><DD>
|
|
<DT id="103"><A HREF="#lbAG">KEY REVOCATION LISTS</A><DD>
|
|
<DT id="104"><A HREF="#lbAH">ALLOWED SIGNERS</A><DD>
|
|
<DT id="105"><A HREF="#lbAI">ENVIRONMENT</A><DD>
|
|
<DT id="106"><A HREF="#lbAJ">FILES</A><DD>
|
|
<DT id="107"><A HREF="#lbAK">SEE ALSO</A><DD>
|
|
<DT id="108"><A HREF="#lbAL">AUTHORS</A><DD>
|
|
</DL>
|
|
<HR>
|
|
This document was created by
|
|
<A HREF="/cgi-bin/man/man2html">man2html</A>,
|
|
using the manual pages.<BR>
|
|
Time: 00:05:27 GMT, March 31, 2021
|
|
</BODY>
|
|
</HTML>
|