version 1.120.2.6, 2002/06/02 22:56:11 |
version 1.121, 2001/05/04 14:21:56 |
|
|
.Nd OpenSSH SSH daemon |
.Nd OpenSSH SSH daemon |
.Sh SYNOPSIS |
.Sh SYNOPSIS |
.Nm sshd |
.Nm sshd |
.Op Fl deiqtD46 |
.Op Fl deiqD46 |
.Op Fl b Ar bits |
.Op Fl b Ar bits |
.Op Fl f Ar config_file |
.Op Fl f Ar config_file |
.Op Fl g Ar login_grace_time |
.Op Fl g Ar login_grace_time |
.Op Fl h Ar host_key_file |
.Op Fl h Ar host_key_file |
.Op Fl k Ar key_gen_time |
.Op Fl k Ar key_gen_time |
.Op Fl o Ar option |
|
.Op Fl p Ar port |
.Op Fl p Ar port |
.Op Fl u Ar len |
.Op Fl u Ar len |
|
.Op Fl V Ar client_protocol_id |
.Sh DESCRIPTION |
.Sh DESCRIPTION |
.Nm |
.Nm |
(SSH Daemon) is the daemon program for |
(SSH Daemon) is the daemon program for |
|
|
because it is fundamentally insecure, but can be enabled in the server |
because it is fundamentally insecure, but can be enabled in the server |
configuration file if desired. |
configuration file if desired. |
System security is not improved unless |
System security is not improved unless |
.Nm rshd , |
.Xr rshd 8 , |
.Nm rlogind , |
.Xr rlogind 8 , |
|
.Xr rexecd 8 , |
and |
and |
.Xr rexecd |
.Xr rexd 8 |
are disabled (thus completely disabling |
are disabled (thus completely disabling |
.Xr rlogin |
.Xr rlogin 1 |
and |
and |
.Xr rsh |
.Xr rsh 1 |
into the machine). |
into the machine). |
.Pp |
.Pp |
.Ss SSH protocol version 2 |
.Ss SSH protocol version 2 |
.Pp |
.Pp |
Version 2 works similarly: |
Version 2 works similarly: |
Each host has a host-specific key (RSA or DSA) used to identify the host. |
Each host has a host-specific DSA key used to identify the host. |
However, when the daemon starts, it does not generate a server key. |
However, when the daemon starts, it does not generate a server key. |
Forward security is provided through a Diffie-Hellman key agreement. |
Forward security is provided through a Diffie-Hellman key agreement. |
This key agreement results in a shared session key. |
This key agreement results in a shared session key. |
|
|
.Nm |
.Nm |
rereads its configuration file when it receives a hangup signal, |
rereads its configuration file when it receives a hangup signal, |
.Dv SIGHUP , |
.Dv SIGHUP , |
by executing itself with the name it was started as, i.e., |
by executing itself with the name it was started as, ie. |
.Pa /usr/sbin/sshd . |
.Pa /usr/sbin/sshd . |
.Pp |
.Pp |
The options are as follows: |
The options are as follows: |
|
|
.It Fl b Ar bits |
.It Fl b Ar bits |
Specifies the number of bits in the ephemeral protocol version 1 |
Specifies the number of bits in the ephemeral protocol version 1 |
server key (default 768). |
server key (default 768). |
|
.Pp |
.It Fl d |
.It Fl d |
Debug mode. |
Debug mode. |
The server sends verbose debug output to the system |
The server sends verbose debug output to the system |
|
|
this many seconds, the server disconnects and exits. |
this many seconds, the server disconnects and exits. |
A value of zero indicates no limit. |
A value of zero indicates no limit. |
.It Fl h Ar host_key_file |
.It Fl h Ar host_key_file |
Specifies a file from which a host key is read. |
Specifies the file from which the host key is read (default |
|
.Pa /etc/ssh_host_key ) . |
This option must be given if |
This option must be given if |
.Nm |
.Nm |
is not run as root (as the normal |
is not run as root (as the normal |
host key files are normally not readable by anyone but root). |
host file is normally not readable by anyone but root). |
The default is |
|
.Pa /etc/ssh_host_key |
|
for protocol version 1, and |
|
.Pa /etc/ssh_host_rsa_key |
|
and |
|
.Pa /etc/ssh_host_dsa_key |
|
for protocol version 2. |
|
It is possible to have multiple host key files for |
It is possible to have multiple host key files for |
the different protocol versions and host key algorithms. |
the different protocol versions and host key algorithms. |
.It Fl i |
.It Fl i |
|
|
communications even if the machine is cracked into or physically |
communications even if the machine is cracked into or physically |
seized. |
seized. |
A value of zero indicates that the key will never be regenerated. |
A value of zero indicates that the key will never be regenerated. |
.It Fl o Ar option |
|
Can be used to give options in the format used in the configuration file. |
|
This is useful for specifying options for which there is no separate |
|
command-line flag. |
|
.It Fl p Ar port |
.It Fl p Ar port |
Specifies the port on which the server listens for connections |
Specifies the port on which the server listens for connections |
(default 22). |
(default 22). |
Multiple port options are permitted. |
|
Ports specified in the configuration file are ignored when a |
|
command-line port is specified. |
|
.It Fl q |
.It Fl q |
Quiet mode. |
Quiet mode. |
Nothing is sent to the system log. |
Nothing is sent to the system log. |
Normally the beginning, |
Normally the beginning, |
authentication, and termination of each connection is logged. |
authentication, and termination of each connection is logged. |
.It Fl t |
|
Test mode. |
|
Only check the validity of the configuration file and sanity of the keys. |
|
This is useful for updating |
|
.Nm |
|
reliably as configuration options may change. |
|
.It Fl u Ar len |
.It Fl u Ar len |
This option is used to specify the size of the field |
This option is used to specify the size of the field |
in the |
in the |
|
|
should be put into the |
should be put into the |
.Pa utmp |
.Pa utmp |
file. |
file. |
.Fl u0 |
|
is also be used to prevent |
|
.Nm |
|
from making DNS requests unless the authentication |
|
mechanism or configuration requires it. |
|
Authentication mechanisms that may require DNS include |
|
.Cm RhostsAuthentication , |
|
.Cm RhostsRSAAuthentication , |
|
.Cm HostbasedAuthentication |
|
and using a |
|
.Cm from="pattern-list" |
|
option in a key file. |
|
Configuration options that require DNS include using a |
|
USER@HOST pattern in |
|
.Cm AllowUsers |
|
or |
|
.Cm DenyUsers . |
|
.It Fl D |
.It Fl D |
When this option is specified |
When this option is specified |
.Nm |
.Nm |
|
|
(or the file specified with |
(or the file specified with |
.Fl f |
.Fl f |
on the command line). |
on the command line). |
The file contains keyword-argument pairs, one per line. |
The file contains keyword-value pairs, one per line. |
Lines starting with |
Lines starting with |
.Ql # |
.Ql # |
and empty lines are interpreted as comments. |
and empty lines are interpreted as comments. |
.Pp |
.Pp |
The possible |
The following keywords are possible. |
keywords and their meanings are as follows (note that |
|
keywords are case-insensitive and arguments are case-sensitive): |
|
.Bl -tag -width Ds |
.Bl -tag -width Ds |
.It Cm AFSTokenPassing |
.It Cm AFSTokenPassing |
Specifies whether an AFS token may be forwarded to the server. |
Specifies whether an AFS token may be forwarded to the server. |
Default is |
Default is |
.Dq no . |
.Dq yes . |
.It Cm AllowGroups |
.It Cm AllowGroups |
This keyword can be followed by a list of group name patterns, separated |
This keyword can be followed by a list of group names, separated |
by spaces. |
by spaces. |
If specified, login is allowed only for users whose primary |
If specified, login is allowed only for users whose primary |
group or supplementary group list matches one of the patterns. |
group or supplementary group list matches one of the patterns. |
|
|
.Ql ? |
.Ql ? |
can be used as |
can be used as |
wildcards in the patterns. |
wildcards in the patterns. |
Only group names are valid; a numerical group ID is not recognized. |
Only group names are valid; a numerical group ID isn't recognized. |
By default, login is allowed for all groups. |
By default login is allowed regardless of the group list. |
.Pp |
.Pp |
.It Cm AllowTcpForwarding |
.It Cm AllowTcpForwarding |
Specifies whether TCP forwarding is permitted. |
Specifies whether TCP forwarding is permitted. |
|
|
own forwarders. |
own forwarders. |
.Pp |
.Pp |
.It Cm AllowUsers |
.It Cm AllowUsers |
This keyword can be followed by a list of user name patterns, separated |
This keyword can be followed by a list of user names, separated |
by spaces. |
by spaces. |
If specified, login is allowed only for users names that |
If specified, login is allowed only for users names that |
match one of the patterns. |
match one of the patterns. |
|
|
.Ql ? |
.Ql ? |
can be used as |
can be used as |
wildcards in the patterns. |
wildcards in the patterns. |
Only user names are valid; a numerical user ID is not recognized. |
Only user names are valid; a numerical user ID isn't recognized. |
By default, login is allowed for all users. |
By default login is allowed regardless of the user name. |
If the pattern takes the form USER@HOST then USER and HOST |
|
are separately checked, restricting logins to particular |
|
users from particular hosts. |
|
.Pp |
.Pp |
.It Cm AuthorizedKeysFile |
|
Specifies the file that contains the public keys that can be used |
|
for user authentication. |
|
.Cm AuthorizedKeysFile |
|
may contain tokens of the form %T which are substituted during connection |
|
set-up. The following tokens are defined: %% is replaced by a literal '%', |
|
%h is replaced by the home directory of the user being authenticated and |
|
%u is replaced by the username of that user. |
|
After expansion, |
|
.Cm AuthorizedKeysFile |
|
is taken to be an absolute path or one relative to the user's home |
|
directory. |
|
The default is |
|
.Dq .ssh/authorized_keys . |
|
.It Cm Banner |
.It Cm Banner |
In some jurisdictions, sending a warning message before authentication |
In some jurisdictions, sending a warning message before authentication |
may be relevant for getting legal protection. |
may be relevant for getting legal protection. |
The contents of the specified file are sent to the remote user before |
The contents of the specified file are sent to the remote user before |
authentication is allowed. |
authentication is allowed. |
This option is only available for protocol version 2. |
This option is only available for protocol version 2. |
By default, no banner is displayed. |
|
.Pp |
.Pp |
.It Cm ChallengeResponseAuthentication |
.It Cm ChallengeResponseAuthentication |
Specifies whether challenge response authentication is allowed. |
Specifies whether |
All authentication styles from |
challenge response |
.Xr login.conf 5 |
authentication is allowed. |
are supported. |
Currently there is only support for |
|
.Xr skey 1 |
|
authentication. |
The default is |
The default is |
.Dq yes . |
.Dq yes . |
.It Cm Ciphers |
.It Cm Ciphers |
Specifies the ciphers allowed for protocol version 2. |
Specifies the ciphers allowed for protocol version 2. |
Multiple ciphers must be comma-separated. |
Multiple ciphers must be comma-separated. |
The default is |
The default is |
.Pp |
.Dq aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour. |
.Bd -literal |
.It Cm CheckMail |
``aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour, |
Specifies whether |
aes192-cbc,aes256-cbc'' |
.Nm |
.Ed |
should check for new mail for interactive logins. |
|
The default is |
|
.Dq no . |
.It Cm ClientAliveInterval |
.It Cm ClientAliveInterval |
Sets a timeout interval in seconds after which if no data has been received |
Sets a timeout interval in seconds after which if no data has been received |
from the client, |
from the client, |
.Nm |
.Nm |
will send a message through the encrypted |
will send a message through the encrypted |
channel to request a response from the client. |
channel to request a response from the client. |
|
|
sent without |
sent without |
.Nm |
.Nm |
receiving any messages back from the client. If this threshold is |
receiving any messages back from the client. If this threshold is |
reached while client alive messages are being sent, |
reached while client alive messages are being sent, |
.Nm |
.Nm |
will disconnect the client, terminating the session. It is important |
will disconnect the client, terminating the session. It is important |
to note that the use of client alive messages is very different from |
to note that the use of client alive messages is very different from |
.Cm KeepAlive |
.Cm Keepalive |
(below). The client alive messages are sent through the |
(below). The client alive messages are sent through the |
encrypted channel and therefore will not be spoofable. The TCP keepalive |
encrypted channel and therefore will not be spoofable. The TCP keepalive |
option enabled by |
option enabled by |
.Cm KeepAlive |
.Cm Keepalive |
is spoofable. The client alive mechanism is valuable when the client or |
is spoofable. You want to use the client |
server depend on knowing when a connection has become inactive. |
alive mechanism when you are basing something important on |
|
clients having an active connection to the server. |
.Pp |
.Pp |
The default value is 3. If |
The default value is 3. If you set |
.Cm ClientAliveInterval |
.Cm ClientAliveInterval |
(above) is set to 15, and |
(above) to 15, and leave this value at the default, unresponsive ssh clients |
.Cm ClientAliveCountMax |
will be disconnected after approximately 45 seconds. |
is left at the default, unresponsive ssh clients |
|
will be disconnected after approximately 45 seconds. |
|
.It Cm DenyGroups |
.It Cm DenyGroups |
This keyword can be followed by a list of group name patterns, separated |
This keyword can be followed by a number of group names, separated |
by spaces. |
by spaces. |
Login is disallowed for users whose primary group or supplementary |
Users whose primary group or supplementary group list matches |
group list matches one of the patterns. |
one of the patterns aren't allowed to log in. |
.Ql \&* |
.Ql \&* |
and |
and |
.Ql ? |
.Ql ? |
can be used as |
can be used as |
wildcards in the patterns. |
wildcards in the patterns. |
Only group names are valid; a numerical group ID is not recognized. |
Only group names are valid; a numerical group ID isn't recognized. |
By default, login is allowed for all groups. |
By default login is allowed regardless of the group list. |
.Pp |
.Pp |
.It Cm DenyUsers |
.It Cm DenyUsers |
This keyword can be followed by a list of user name patterns, separated |
This keyword can be followed by a number of user names, separated |
by spaces. |
by spaces. |
Login is disallowed for user names that match one of the patterns. |
Login is disallowed for user names that match one of the patterns. |
.Ql \&* |
.Ql \&* |
and |
and |
.Ql ? |
.Ql ? |
can be used as wildcards in the patterns. |
can be used as wildcards in the patterns. |
Only user names are valid; a numerical user ID is not recognized. |
Only user names are valid; a numerical user ID isn't recognized. |
By default, login is allowed for all users. |
By default login is allowed regardless of the user name. |
If the pattern takes the form USER@HOST then USER and HOST |
|
are separately checked, restricting logins to particular |
|
users from particular hosts. |
|
.It Cm GatewayPorts |
.It Cm GatewayPorts |
Specifies whether remote hosts are allowed to connect to ports |
Specifies whether remote hosts are allowed to connect to ports |
forwarded for the client. |
forwarded for the client. |
By default, |
|
.Nm |
|
binds remote port forwardings to the loopback addresss. This |
|
prevents other remote hosts from connecting to forwarded ports. |
|
.Cm GatewayPorts |
|
can be used to specify that |
|
.Nm |
|
should bind remote port forwardings to the wildcard address, |
|
thus allowing remote hosts to connect to forwarded ports. |
|
The argument must be |
The argument must be |
.Dq yes |
.Dq yes |
or |
or |
|
|
The default is |
The default is |
.Dq no . |
.Dq no . |
.It Cm HostKey |
.It Cm HostKey |
Specifies a file containing a private host key |
Specifies the file containing the private host keys (default |
used by SSH. |
.Pa /etc/ssh_host_key ) |
The default is |
used by SSH protocol versions 1 and 2. |
.Pa /etc/ssh_host_key |
|
for protocol version 1, and |
|
.Pa /etc/ssh_host_rsa_key |
|
and |
|
.Pa /etc/ssh_host_dsa_key |
|
for protocol version 2. |
|
Note that |
Note that |
.Nm |
.Nm |
will refuse to use a file if it is group/world-accessible. |
will refuse to use a file if it is group/world-accessible. |
|
|
The default is |
The default is |
.Dq no . |
.Dq no . |
.It Cm KeepAlive |
.It Cm KeepAlive |
Specifies whether the system should send TCP keepalive messages to the |
Specifies whether the system should send keepalive messages to the |
other side. |
other side. |
If they are sent, death of the connection or crash of one |
If they are sent, death of the connection or crash of one |
of the machines will be properly noticed. |
of the machines will be properly noticed. |
|
|
The default is |
The default is |
.Dq yes |
.Dq yes |
(to send keepalives), and the server will notice |
(to send keepalives), and the server will notice |
if the network goes down or the client host crashes. |
if the network goes down or the client host reboots. |
This avoids infinitely hanging sessions. |
This avoids infinitely hanging sessions. |
.Pp |
.Pp |
To disable keepalives, the value should be set to |
To disable keepalives, the value should be set to |
.Dq no . |
.Dq no |
|
in both the server and the client configuration files. |
.It Cm KerberosAuthentication |
.It Cm KerberosAuthentication |
Specifies whether Kerberos authentication is allowed. |
Specifies whether Kerberos authentication is allowed. |
This can be in the form of a Kerberos ticket, or if |
This can be in the form of a Kerberos ticket, or if |
|
|
To use this option, the server needs a |
To use this option, the server needs a |
Kerberos servtab which allows the verification of the KDC's identity. |
Kerberos servtab which allows the verification of the KDC's identity. |
Default is |
Default is |
.Dq no . |
.Dq yes . |
.It Cm KerberosOrLocalPasswd |
.It Cm KerberosOrLocalPasswd |
If set then if password authentication through Kerberos fails then |
If set then if password authentication through Kerberos fails then |
the password will be validated via any additional local mechanism |
the password will be validated via any additional local mechanism |
|
|
Gives the verbosity level that is used when logging messages from |
Gives the verbosity level that is used when logging messages from |
.Nm sshd . |
.Nm sshd . |
The possible values are: |
The possible values are: |
QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2 and DEBUG3. |
QUIET, FATAL, ERROR, INFO, VERBOSE and DEBUG. |
The default is INFO. DEBUG and DEBUG1 are equivalent. DEBUG2 |
The default is INFO. |
and DEBUG3 each specify higher levels of debugging output. |
Logging with level DEBUG violates the privacy of users |
Logging with a DEBUG level violates the privacy of users |
|
and is not recommended. |
and is not recommended. |
.It Cm MACs |
.It Cm MACs |
Specifies the available MAC (message authentication code) algorithms. |
Specifies the available MAC (message authentication code) algorithms. |
|
|
for data integrity protection. |
for data integrity protection. |
Multiple algorithms must be comma-separated. |
Multiple algorithms must be comma-separated. |
The default is |
The default is |
.Dq hmac-md5,hmac-sha1,hmac-ripemd160,hmac-sha1-96,hmac-md5-96 . |
.Pp |
|
.Bd -literal |
|
``hmac-md5,hmac-sha1,hmac-ripemd160,hmac-ripemd160@openssh.com, |
|
hmac-sha1-96,hmac-md5-96'' |
|
.Ed |
.It Cm MaxStartups |
.It Cm MaxStartups |
Specifies the maximum number of concurrent unauthenticated connections to the |
Specifies the maximum number of concurrent unauthenticated connections to the |
.Nm |
.Nm |
|
|
The default is |
The default is |
.Dq yes . |
.Dq yes . |
Note that this option applies to protocol version 2 only. |
Note that this option applies to protocol version 2 only. |
|
.It Cm ReverseMappingCheck |
|
Specifies whether |
|
.Nm |
|
should try to verify the remote host name and check that |
|
the resolved host name for the remote IP address maps back to the |
|
very same IP address. |
|
The default is |
|
.Dq no . |
.It Cm RhostsAuthentication |
.It Cm RhostsAuthentication |
Specifies whether authentication using rhosts or /etc/hosts.equiv |
Specifies whether authentication using rhosts or /etc/hosts.equiv |
files is sufficient. |
files is sufficient. |
|
|
Specifies whether |
Specifies whether |
.Xr login 1 |
.Xr login 1 |
is used for interactive login sessions. |
is used for interactive login sessions. |
The default is |
|
.Dq no . |
|
Note that |
Note that |
.Xr login 1 |
.Xr login 1 |
is never used for remote command execution. |
is never used for remote command execution. |
Note also, that if this is enabled, |
|
.Cm X11Forwarding |
|
will be disabled because |
|
.Xr login 1 |
|
does not know how to handle |
|
.Xr xauth 1 |
|
cookies. If |
|
.Cm UsePrivilegeSeparation |
|
is specified, it will be disabled after authentication. |
|
.It Cm UsePrivilegeSeparation |
|
Specifies whether |
|
.Nm |
|
separated privileges by creating an unprivileged child process |
|
to deal with incoming network traffic. After successful authentication, |
|
another process will be created that has the privilege of the authenticated |
|
user. The goal of privilege separation is to prevent privilege |
|
escalation by containing any corruption within the unprivileged processes. |
|
The default is |
The default is |
.Dq no . |
.Dq no . |
.It Cm VerifyReverseMapping |
|
Specifies whether |
|
.Nm |
|
should try to verify the remote host name and check that |
|
the resolved host name for the remote IP address maps back to the |
|
very same IP address. |
|
The default is |
|
.Dq no . |
|
.It Cm X11DisplayOffset |
.It Cm X11DisplayOffset |
Specifies the first display number available for |
Specifies the first display number available for |
.Nm sshd Ns 's |
.Nm sshd Ns 's |
|
|
.Dq no . |
.Dq no . |
Note that disabling X11 forwarding does not improve security in any |
Note that disabling X11 forwarding does not improve security in any |
way, as users can always install their own forwarders. |
way, as users can always install their own forwarders. |
X11 forwarding is automatically disabled if |
|
.Cm UseLogin |
|
is enabled. |
|
.It Cm X11UseLocalhost |
|
Specifies whether |
|
.Nm |
|
should bind the X11 forwarding server to the loopback address or to |
|
the wildcard address. By default, |
|
.Nm |
|
binds the forwarding server to the loopback address and sets the |
|
hostname part of the |
|
.Ev DISPLAY |
|
environment variable to |
|
.Dq localhost . |
|
This prevents remote hosts from connecting to the fake display. |
|
However, some older X11 clients may not function with this |
|
configuration. |
|
.Cm X11UseLocalhost |
|
may be set to |
|
.Dq no |
|
to specify that the forwarding server should be bound to the wildcard |
|
address. |
|
The argument must be |
|
.Dq yes |
|
or |
|
.Dq no . |
|
The default is |
|
.Dq yes . |
|
.It Cm XAuthLocation |
.It Cm XAuthLocation |
Specifies the location of the |
Specifies the location of the |
.Xr xauth 1 |
.Xr xauth 1 |
|
|
The default is |
The default is |
.Pa /usr/X11R6/bin/xauth . |
.Pa /usr/X11R6/bin/xauth . |
.El |
.El |
.Ss Time Formats |
|
.Pp |
|
.Nm |
|
command-line arguments and configuration file options that specify time |
|
may be expressed using a sequence of the form: |
|
.Sm off |
|
.Ar time Oo Ar qualifier Oc , |
|
.Sm on |
|
where |
|
.Ar time |
|
is a positive integer value and |
|
.Ar qualifier |
|
is one of the following: |
|
.Pp |
|
.Bl -tag -width Ds -compact -offset indent |
|
.It Cm <none> |
|
seconds |
|
.It Cm s | Cm S |
|
seconds |
|
.It Cm m | Cm M |
|
minutes |
|
.It Cm h | Cm H |
|
hours |
|
.It Cm d | Cm D |
|
days |
|
.It Cm w | Cm W |
|
weeks |
|
.El |
|
.Pp |
|
Each member of the sequence is added together to calculate |
|
the total time value. |
|
.Pp |
|
Time format examples: |
|
.Pp |
|
.Bl -tag -width Ds -compact -offset indent |
|
.It 600 |
|
600 seconds (10 minutes) |
|
.It 10m |
|
10 minutes |
|
.It 1h30m |
|
1 hour 30 minutes (90 minutes) |
|
.El |
|
.Sh LOGIN PROCESS |
.Sh LOGIN PROCESS |
When a user successfully logs in, |
When a user successfully logs in, |
.Nm |
.Nm |
|
|
Runs user's shell or command. |
Runs user's shell or command. |
.El |
.El |
.Sh AUTHORIZED_KEYS FILE FORMAT |
.Sh AUTHORIZED_KEYS FILE FORMAT |
|
The |
.Pa $HOME/.ssh/authorized_keys |
.Pa $HOME/.ssh/authorized_keys |
is the default file that lists the public keys that are |
file lists the RSA keys that are |
permitted for RSA authentication in protocol version 1 |
permitted for RSA authentication in protocol version 1. |
and for public key authentication (PubkeyAuthentication) |
Similarly, the |
|
.Pa $HOME/.ssh/authorized_keys2 |
|
file lists the DSA and RSA keys that are |
|
permitted for public key authentication (PubkeyAuthentication) |
in protocol version 2. |
in protocol version 2. |
.Cm AuthorizedKeysFile |
|
may be used to specify an alternative file. |
|
.Pp |
.Pp |
Each line of the file contains one |
Each line of the file contains one |
key (empty lines and lines starting with a |
key (empty lines and lines starting with a |
|
|
.Pa id_rsa.pub |
.Pa id_rsa.pub |
file and edit it. |
file and edit it. |
.Pp |
.Pp |
.Nm |
|
enforces a minimum RSA key modulus size for protocol 1 |
|
and protocol 2 keys of 768 bits. |
|
.Pp |
|
The options (if present) consist of comma-separated option |
The options (if present) consist of comma-separated option |
specifications. |
specifications. |
No spaces are permitted, except within double quotes. |
No spaces are permitted, except within double quotes. |
The following option specifications are supported (note |
The following option specifications are supported: |
that option keywords are case-insensitive): |
|
.Bl -tag -width Ds |
.Bl -tag -width Ds |
.It Cm from="pattern-list" |
.It Cm from="pattern-list" |
Specifies that in addition to RSA authentication, the canonical name |
Specifies that in addition to RSA authentication, the canonical name |
|
|
Specifies that the command is executed whenever this key is used for |
Specifies that the command is executed whenever this key is used for |
authentication. |
authentication. |
The command supplied by the user (if any) is ignored. |
The command supplied by the user (if any) is ignored. |
The command is run on a pty if the client requests a pty; |
The command is run on a pty if the connection requests a pty; |
otherwise it is run without a tty. |
otherwise it is run without a tty. |
If a 8-bit clean channel is required, |
Note that if you want a 8-bit clean channel, |
one must not request a pty or should specify |
you must not request a pty or should specify |
.Cm no-pty . |
.Cm no-pty . |
A quote may be included in the command by quoting it with a backslash. |
A quote may be included in the command by quoting it with a backslash. |
This option might be useful |
This option might be useful |
|
|
An example might be a key that permits remote backups but nothing else. |
An example might be a key that permits remote backups but nothing else. |
Note that the client may specify TCP/IP and/or X11 |
Note that the client may specify TCP/IP and/or X11 |
forwarding unless they are explicitly prohibited. |
forwarding unless they are explicitly prohibited. |
Note that this option applies to shell, command or subsystem execution. |
|
.It Cm environment="NAME=value" |
.It Cm environment="NAME=value" |
Specifies that the string is to be added to the environment when |
Specifies that the string is to be added to the environment when |
logging in using this key. |
logging in using this key. |
Environment variables set this way |
Environment variables set this way |
override other default environment values. |
override other default environment values. |
Multiple options of this type are permitted. |
Multiple options of this type are permitted. |
This option is automatically disabled if |
|
.Cm UseLogin |
|
is enabled. |
|
.It Cm no-port-forwarding |
.It Cm no-port-forwarding |
Forbids TCP/IP forwarding when this key is used for authentication. |
Forbids TCP/IP forwarding when this key is used for authentication. |
Any port forward requests by the client will return an error. |
Any port forward requests by the client will return an error. |
|
|
.It Cm no-pty |
.It Cm no-pty |
Prevents tty allocation (a request to allocate a pty will fail). |
Prevents tty allocation (a request to allocate a pty will fail). |
.It Cm permitopen="host:port" |
.It Cm permitopen="host:port" |
Limit local |
Limit local |
.Li ``ssh -L'' |
.Li ``ssh -L'' |
port forwarding such that it may only connect to the specified host and |
port forwarding such that it may only connect to the specified host and |
port. |
port. Multiple |
IPv6 addresses can be specified with an alternative syntax: |
|
.Ar host/port . |
|
Multiple |
|
.Cm permitopen |
.Cm permitopen |
options may be applied separated by commas. No pattern matching is |
options may be applied separated by commas. No pattern matching is |
performed on the specified hostnames, they must be literal domains or |
performed on the specified hostnames, they must be literal domains or |
addresses. |
addresses. |
.El |
.El |
.Ss Examples |
.Ss Examples |
|
|
.Sh SSH_KNOWN_HOSTS FILE FORMAT |
.Sh SSH_KNOWN_HOSTS FILE FORMAT |
The |
The |
.Pa /etc/ssh_known_hosts , |
.Pa /etc/ssh_known_hosts , |
|
.Pa /etc/ssh_known_hosts2 , |
|
.Pa $HOME/.ssh/known_hosts , |
and |
and |
.Pa $HOME/.ssh/known_hosts |
.Pa $HOME/.ssh/known_hosts2 |
files contain host public keys for all known hosts. |
files contain host public keys for all known hosts. |
The global file should |
The global file should |
be prepared by the administrator (optional), and the per-user file is |
be prepared by the administrator (optional), and the per-user file is |
|
|
the user so their contents can be copied to known hosts files. |
the user so their contents can be copied to known hosts files. |
These files are created using |
These files are created using |
.Xr ssh-keygen 1 . |
.Xr ssh-keygen 1 . |
.It Pa /etc/moduli |
.It Pa /etc/primes |
Contains Diffie-Hellman groups used for the "Diffie-Hellman Group Exchange". |
Contains Diffie-Hellman groups used for the "Diffie-Hellman Group Exchange". |
.It Pa /var/run/sshd.pid |
.It Pa /var/run/sshd.pid |
Contains the process ID of the |
Contains the process ID of the |
|
|
started last). |
started last). |
The content of this file is not sensitive; it can be world-readable. |
The content of this file is not sensitive; it can be world-readable. |
.It Pa $HOME/.ssh/authorized_keys |
.It Pa $HOME/.ssh/authorized_keys |
|
Lists the RSA keys that can be used to log into the user's account. |
|
This file must be readable by root (which may on some machines imply |
|
it being world-readable if the user's home directory resides on an NFS |
|
volume). |
|
It is recommended that it not be accessible by others. |
|
The format of this file is described above. |
|
Users will place the contents of their |
|
.Pa identity.pub |
|
files into this file, as described in |
|
.Xr ssh-keygen 1 . |
|
.It Pa $HOME/.ssh/authorized_keys2 |
Lists the public keys (RSA or DSA) that can be used to log into the user's account. |
Lists the public keys (RSA or DSA) that can be used to log into the user's account. |
This file must be readable by root (which may on some machines imply |
This file must be readable by root (which may on some machines imply |
it being world-readable if the user's home directory resides on an NFS |
it being world-readable if the user's home directory resides on an NFS |
|
|
It is recommended that it not be accessible by others. |
It is recommended that it not be accessible by others. |
The format of this file is described above. |
The format of this file is described above. |
Users will place the contents of their |
Users will place the contents of their |
.Pa identity.pub , |
|
.Pa id_dsa.pub |
.Pa id_dsa.pub |
and/or |
and/or |
.Pa id_rsa.pub |
.Pa id_rsa.pub |
|
|
.Xr ssh-keygen 1 . |
.Xr ssh-keygen 1 . |
.It Pa "/etc/ssh_known_hosts" and "$HOME/.ssh/known_hosts" |
.It Pa "/etc/ssh_known_hosts" and "$HOME/.ssh/known_hosts" |
These files are consulted when using rhosts with RSA host |
These files are consulted when using rhosts with RSA host |
authentication or protocol version 2 hostbased authentication |
authentication to check the public key of the host. |
to check the public key of the host. |
|
The key must be listed in one of these files to be accepted. |
The key must be listed in one of these files to be accepted. |
The client uses the same files |
The client uses the same files |
to verify that it is connecting to the correct remote host. |
to verify that it is connecting to the correct remote host. |
|
|
should be world-readable, and |
should be world-readable, and |
.Pa $HOME/.ssh/known_hosts |
.Pa $HOME/.ssh/known_hosts |
can but need not be world-readable. |
can but need not be world-readable. |
|
.It Pa "/etc/ssh_known_hosts2" and "$HOME/.ssh/known_hosts2" |
|
These files are consulted when using protocol version 2 hostbased |
|
authentication to check the public key of the host. |
|
The key must be listed in one of these files to be accepted. |
|
The client uses the same files |
|
to verify that it is connecting to the correct remote host. |
|
These files should be writable only by root/the owner. |
|
.Pa /etc/ssh_known_hosts2 |
|
should be world-readable, and |
|
.Pa $HOME/.ssh/known_hosts2 |
|
can but need not be world-readable. |
.It Pa /etc/nologin |
.It Pa /etc/nologin |
If this file exists, |
If this file exists, |
.Nm |
.Nm |
|
|
refused. |
refused. |
The file should be world-readable. |
The file should be world-readable. |
.It Pa /etc/hosts.allow, /etc/hosts.deny |
.It Pa /etc/hosts.allow, /etc/hosts.deny |
Access controls that should be enforced by tcp-wrappers are defined here. |
If compiled with |
Further details are described in |
.Sy LIBWRAP |
|
support, tcp-wrappers access controls may be defined here as described in |
.Xr hosts_access 5 . |
.Xr hosts_access 5 . |
.It Pa $HOME/.rhosts |
.It Pa $HOME/.rhosts |
This file contains host-username pairs, separated by a space, one per |
This file contains host-username pairs, separated by a space, one per |
|
|
.It Pa $HOME/.ssh/rc |
.It Pa $HOME/.ssh/rc |
If this file exists, it is run with /bin/sh after reading the |
If this file exists, it is run with /bin/sh after reading the |
environment files but before starting the user's shell or command. |
environment files but before starting the user's shell or command. |
It must not produce any output on stdout; stderr must be used |
If X11 spoofing is in use, this will receive the "proto cookie" pair in |
instead. |
standard input (and |
If X11 forwarding is in use, it will receive the "proto cookie" pair in |
|
its standard input (and |
|
.Ev DISPLAY |
.Ev DISPLAY |
in its environment). |
in environment). |
The script must call |
This must call |
.Xr xauth 1 |
.Xr xauth 1 |
because |
in that case. |
.Nm |
|
will not run xauth automatically to add X11 cookies. |
|
.Pp |
.Pp |
The primary purpose of this file is to run any initialization routines |
The primary purpose of this file is to run any initialization routines |
which may be needed before the user's home directory becomes |
which may be needed before the user's home directory becomes |
|
|
This file will probably contain some initialization code followed by |
This file will probably contain some initialization code followed by |
something similar to: |
something similar to: |
.Bd -literal |
.Bd -literal |
if read proto cookie && [ -n "$DISPLAY" ]; then |
if read proto cookie; then |
if [ `echo $DISPLAY | cut -c1-10` = 'localhost:' ]; then |
echo add $DISPLAY $proto $cookie | xauth -q - |
# X11UseLocalhost=yes |
|
xauth add unix:`echo $DISPLAY | |
|
cut -c11-` $proto $cookie |
|
else |
|
# X11UseLocalhost=no |
|
xauth add $DISPLAY $proto $cookie |
|
fi |
fi |
fi |
|
.Ed |
.Ed |
.Pp |
.Pp |
If this file does not exist, |
If this file does not exist, |
.Pa /etc/sshrc |
.Pa /etc/sshrc |
is run, and if that |
is run, and if that |
does not exist either, xauth is used to add the cookie. |
does not exist either, xauth is used to store the cookie. |
.Pp |
.Pp |
This file should be writable only by the user, and need not be |
This file should be writable only by the user, and need not be |
readable by anyone else. |
readable by anyone else. |
|
|
created OpenSSH. |
created OpenSSH. |
Markus Friedl contributed the support for SSH |
Markus Friedl contributed the support for SSH |
protocol versions 1.5 and 2.0. |
protocol versions 1.5 and 2.0. |
Niels Provos and Markus Friedl contributed support |
|
for privilege separation. |
|
.Sh SEE ALSO |
.Sh SEE ALSO |
.Xr scp 1 , |
.Xr scp 1 , |
.Xr sftp 1 , |
.Xr sftp 1 , |
|
.Xr sftp-server 8 , |
.Xr ssh 1 , |
.Xr ssh 1 , |
.Xr ssh-add 1 , |
.Xr ssh-add 1 , |
.Xr ssh-agent 1 , |
.Xr ssh-agent 1 , |
.Xr ssh-keygen 1 , |
.Xr ssh-keygen 1 , |
.Xr login.conf 5 , |
.Xr rlogin 1 , |
.Xr moduli 5 , |
.Xr rsh 1 |
.Xr sftp-server 8 |
|
.Rs |
.Rs |
.%A T. Ylonen |
.%A T. Ylonen |
.%A T. Kivinen |
.%A T. Kivinen |
|
|
.%A T. Rinne |
.%A T. Rinne |
.%A S. Lehtinen |
.%A S. Lehtinen |
.%T "SSH Protocol Architecture" |
.%T "SSH Protocol Architecture" |
.%N draft-ietf-secsh-architecture-12.txt |
.%N draft-ietf-secsh-architecture-07.txt |
.%D January 2002 |
.%D January 2001 |
.%O work in progress material |
.%O work in progress material |
.Re |
.Re |
.Rs |
.Rs |
|
|
.%A N. Provos |
.%A N. Provos |
.%A W. A. Simpson |
.%A W. A. Simpson |
.%T "Diffie-Hellman Group Exchange for the SSH Transport Layer Protocol" |
.%T "Diffie-Hellman Group Exchange for the SSH Transport Layer Protocol" |
.%N draft-ietf-secsh-dh-group-exchange-02.txt |
.%N draft-ietf-secsh-dh-group-exchange-00.txt |
.%D January 2002 |
.%D January 2001 |
.%O work in progress material |
.%O work in progress material |
.Re |
.Re |