- jmc@cvs.openbsd.org 2003/09/29 11:40:51

[ssh.1]
     - add list of options to -o and .Xr ssh_config(5)
     - some other cleanup
     requested by deraadt@;
     ok deraadt@ markus@
This commit is contained in:
Darren Tucker 2003-10-02 16:19:47 +10:00
parent 8fca6b57b4
commit 6177695c0b
2 changed files with 299 additions and 226 deletions

View File

@ -19,6 +19,12 @@
- markus@cvs.openbsd.org 2003/09/26 08:19:29 - markus@cvs.openbsd.org 2003/09/26 08:19:29
[sshd.c] [sshd.c]
no need to set the listen sockets to non-block; ok deraadt@ no need to set the listen sockets to non-block; ok deraadt@
- jmc@cvs.openbsd.org 2003/09/29 11:40:51
[ssh.1]
- add list of options to -o and .Xr ssh_config(5)
- some other cleanup
requested by deraadt@;
ok deraadt@ markus@
20030930 20030930
- (bal) Fix issues in openbsd-compat/realpath.c - (bal) Fix issues in openbsd-compat/realpath.c
@ -1254,4 +1260,4 @@
- Fix sshd BindAddress and -b options for systems using fake-getaddrinfo. - Fix sshd BindAddress and -b options for systems using fake-getaddrinfo.
Report from murple@murple.net, diagnosis from dtucker@zip.com.au Report from murple@murple.net, diagnosis from dtucker@zip.com.au
$Id: ChangeLog,v 1.3048 2003/10/02 06:18:22 dtucker Exp $ $Id: ChangeLog,v 1.3049 2003/10/02 06:19:47 dtucker Exp $

517
ssh.1
View File

@ -34,7 +34,7 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\" .\"
.\" $OpenBSD: ssh.1,v 1.175 2003/07/22 13:35:22 markus Exp $ .\" $OpenBSD: ssh.1,v 1.176 2003/09/29 11:40:51 jmc Exp $
.Dd September 25, 1999 .Dd September 25, 1999
.Dt SSH 1 .Dt SSH 1
.Os .Os
@ -43,22 +43,14 @@
.Nd OpenSSH SSH client (remote login program) .Nd OpenSSH SSH client (remote login program)
.Sh SYNOPSIS .Sh SYNOPSIS
.Nm ssh .Nm ssh
.Op Fl l Ar login_name .Op Fl 1246AaCfgkNnqsTtVvXx
.Ar hostname | user@hostname
.Op Ar command
.Pp
.Nm ssh
.Bk -words
.Op Fl afgknqstvxACNTVX1246
.Op Fl b Ar bind_address .Op Fl b Ar bind_address
.Op Fl c Ar cipher_spec .Op Fl c Ar cipher_spec
.Op Fl D Ar port
.Op Fl e Ar escape_char .Op Fl e Ar escape_char
.Op Fl i Ar identity_file
.Op Fl l Ar login_name
.Op Fl m Ar mac_spec
.Op Fl o Ar option
.Op Fl p Ar port
.Op Fl F Ar configfile .Op Fl F Ar configfile
.Op Fl i Ar identity_file
.Bk -words
.Oo Fl L Xo .Oo Fl L Xo
.Sm off .Sm off
.Ar port : .Ar port :
@ -68,7 +60,12 @@
.Xc .Xc
.Oc .Oc
.Ek .Ek
.Op Fl l Ar login_name
.Op Fl m Ar mac_spec
.Op Fl o Ar option
.Bk -words .Bk -words
.Op Fl p Ar port
.Ek
.Oo Fl R Xo .Oo Fl R Xo
.Sm off .Sm off
.Ar port : .Ar port :
@ -77,29 +74,34 @@
.Sm on .Sm on
.Xc .Xc
.Oc .Oc
.Op Fl D Ar port .Oo Ar user Ns @ Oc Ns Ar hostname
.Ar hostname | user@hostname
.Op Ar command .Op Ar command
.Ek
.Sh DESCRIPTION .Sh DESCRIPTION
.Nm .Nm
(SSH client) is a program for logging into a remote machine and for (SSH client) is a program for logging into a remote machine and for
executing commands on a remote machine. executing commands on a remote machine.
It is intended to replace It is intended to replace rlogin and rsh,
rlogin and rsh, and provide secure encrypted communications between and provide secure encrypted communications between
two untrusted hosts over an insecure network. two untrusted hosts over an insecure network.
X11 connections and X11 connections and arbitrary TCP/IP ports
arbitrary TCP/IP ports can also be forwarded over the secure channel. can also be forwarded over the secure channel.
.Pp .Pp
.Nm .Nm
connects and logs into the specified connects and logs into the specified
.Ar hostname . .Ar hostname
(with optional
.Ar user
name).
The user must prove The user must prove
his/her identity to the remote machine using one of several methods his/her identity to the remote machine using one of several methods
depending on the protocol version used: depending on the protocol version used.
.Pp .Pp
If
.Ar command
is specified,
.Ar command
is executed on the remote host instead of a login shell.
.Ss SSH protocol version 1 .Ss SSH protocol version 1
.Pp
First, if the machine the user logs in from is listed in First, if the machine the user logs in from is listed in
.Pa /etc/hosts.equiv .Pa /etc/hosts.equiv
or or
@ -107,9 +109,9 @@ or
on the remote machine, and the user names are on the remote machine, and the user names are
the same on both sides, the user is immediately permitted to log in. the same on both sides, the user is immediately permitted to log in.
Second, if Second, if
.Pa \&.rhosts .Pa .rhosts
or or
.Pa \&.shosts .Pa .shosts
exists in the user's home directory on the exists in the user's home directory on the
remote machine and contains a line containing the name of the client remote machine and contains a line containing the name of the client
machine and the name of the user on that machine, the user is machine and the name of the user on that machine, the user is
@ -118,9 +120,9 @@ This form of authentication alone is normally not
allowed by the server because it is not secure. allowed by the server because it is not secure.
.Pp .Pp
The second authentication method is the The second authentication method is the
.Pa rhosts .Em rhosts
or or
.Pa hosts.equiv .Em hosts.equiv
method combined with RSA-based host authentication. method combined with RSA-based host authentication.
It means that if the login would be permitted by It means that if the login would be permitted by
.Pa $HOME/.rhosts , .Pa $HOME/.rhosts ,
@ -135,7 +137,7 @@ and
.Pa $HOME/.ssh/known_hosts .Pa $HOME/.ssh/known_hosts
in the in the
.Sx FILES .Sx FILES
section), only then login is permitted. section), only then is login permitted.
This authentication method closes security holes due to IP This authentication method closes security holes due to IP
spoofing, DNS spoofing and routing spoofing. spoofing, DNS spoofing and routing spoofing.
[Note to the administrator: [Note to the administrator:
@ -154,24 +156,23 @@ RSA is one such system.
The idea is that each user creates a public/private The idea is that each user creates a public/private
key pair for authentication purposes. key pair for authentication purposes.
The server knows the public key, and only the user knows the private key. The server knows the public key, and only the user knows the private key.
.Pp
The file The file
.Pa $HOME/.ssh/authorized_keys .Pa $HOME/.ssh/authorized_keys
lists the public keys that are permitted for logging lists the public keys that are permitted for logging in.
in.
When the user logs in, the When the user logs in, the
.Nm .Nm
program tells the server which key pair it would like to use for program tells the server which key pair it would like to use for
authentication. authentication.
The server checks if this key is permitted, and if The server checks if this key is permitted, and if so,
so, sends the user (actually the sends the user (actually the
.Nm .Nm
program running on behalf of the user) a challenge, a random number, program running on behalf of the user) a challenge, a random number,
encrypted by the user's public key. encrypted by the user's public key.
The challenge can only be The challenge can only be decrypted using the proper private key.
decrypted using the proper private key. The user's client then decrypts the challenge using the private key,
The user's client then decrypts the proving that he/she knows the private key
challenge using the private key, proving that he/she knows the private but without disclosing it to the server.
key but without disclosing it to the server.
.Pp .Pp
.Nm .Nm
implements the RSA authentication protocol automatically. implements the RSA authentication protocol automatically.
@ -179,7 +180,7 @@ The user creates his/her RSA key pair by running
.Xr ssh-keygen 1 . .Xr ssh-keygen 1 .
This stores the private key in This stores the private key in
.Pa $HOME/.ssh/identity .Pa $HOME/.ssh/identity
and the public key in and stores the public key in
.Pa $HOME/.ssh/identity.pub .Pa $HOME/.ssh/identity.pub
in the user's home directory. in the user's home directory.
The user should then copy the The user should then copy the
@ -193,8 +194,9 @@ file corresponds to the conventional
file, and has one key file, and has one key
per line, though the lines can be very long). per line, though the lines can be very long).
After this, the user can log in without giving the password. After this, the user can log in without giving the password.
RSA authentication is much RSA authentication is much more secure than
more secure than rhosts authentication. .Em rhosts
authentication.
.Pp .Pp
The most convenient way to use RSA authentication may be with an The most convenient way to use RSA authentication may be with an
authentication agent. authentication agent.
@ -208,16 +210,14 @@ prompts the user for a password.
The password is sent to the remote The password is sent to the remote
host for checking; however, since all communications are encrypted, host for checking; however, since all communications are encrypted,
the password cannot be seen by someone listening on the network. the password cannot be seen by someone listening on the network.
.Pp
.Ss SSH protocol version 2 .Ss SSH protocol version 2
.Pp When a user connects using protocol version 2,
When a user connects using protocol version 2
similar authentication methods are available. similar authentication methods are available.
Using the default values for Using the default values for
.Cm PreferredAuthentications , .Cm PreferredAuthentications ,
the client will try to authenticate first using the hostbased method; the client will try to authenticate first using the hostbased method;
if this method fails public key authentication is attempted, if this method fails, public key authentication is attempted,
and finally if this method fails keyboard-interactive and and finally if this method fails, keyboard-interactive and
password authentication are tried. password authentication are tried.
.Pp .Pp
The public key method is similar to RSA authentication described The public key method is similar to RSA authentication described
@ -233,8 +233,8 @@ and grants access if both the key is found and the signature is correct.
The session identifier is derived from a shared Diffie-Hellman value The session identifier is derived from a shared Diffie-Hellman value
and is only known to the client and the server. and is only known to the client and the server.
.Pp .Pp
If public key authentication fails or is not available a password If public key authentication fails or is not available, a password
can be sent encrypted to the remote host for proving the user's identity. can be sent encrypted to the remote host to prove the user's identity.
.Pp .Pp
Additionally, Additionally,
.Nm .Nm
@ -245,9 +245,7 @@ Protocol 2 provides additional mechanisms for confidentiality
and integrity (hmac-md5, hmac-sha1). and integrity (hmac-md5, hmac-sha1).
Note that protocol 1 lacks a strong mechanism for ensuring the Note that protocol 1 lacks a strong mechanism for ensuring the
integrity of the connection. integrity of the connection.
.Pp
.Ss Login session and remote execution .Ss Login session and remote execution
.Pp
When the user's identity has been accepted by the server, the server When the user's identity has been accepted by the server, the server
either executes the given command, or logs into the machine and gives either executes the given command, or logs into the machine and gives
the user a normal shell on the remote machine. the user a normal shell on the remote machine.
@ -257,23 +255,20 @@ the remote command or shell will be automatically encrypted.
If a pseudo-terminal has been allocated (normal login session), the If a pseudo-terminal has been allocated (normal login session), the
user may use the escape characters noted below. user may use the escape characters noted below.
.Pp .Pp
If no pseudo tty has been allocated, the If no pseudo-tty has been allocated,
session is transparent and can be used to reliably transfer binary the session is transparent and can be used to reliably transfer binary data.
data.
On most systems, setting the escape character to On most systems, setting the escape character to
.Dq none .Dq none
will also make the session transparent even if a tty is used. will also make the session transparent even if a tty is used.
.Pp .Pp
The session terminates when the command or shell on the remote The session terminates when the command or shell on the remote
machine exits and all X11 and TCP/IP connections have been closed. machine exits and all X11 and TCP/IP connections have been closed.
The exit status of the remote program is returned as the exit status The exit status of the remote program is returned as the exit status of
of
.Nm ssh . .Nm ssh .
.Pp
.Ss Escape Characters .Ss Escape Characters
.Pp When a pseudo-terminal has been requested,
When a pseudo terminal has been requested, ssh supports a number of functions .Nm
through the use of an escape character. supports a number of functions through the use of an escape character.
.Pp .Pp
A single tilde character can be sent as A single tilde character can be sent as
.Ic ~~ .Ic ~~
@ -291,37 +286,37 @@ The supported escapes (assuming the default
are: are:
.Bl -tag -width Ds .Bl -tag -width Ds
.It Cm ~. .It Cm ~.
Disconnect Disconnect.
.It Cm ~^Z .It Cm ~^Z
Background ssh Background
.Nm ssh .
.It Cm ~# .It Cm ~#
List forwarded connections List forwarded connections.
.It Cm ~& .It Cm ~&
Background ssh at logout when waiting for forwarded connection / X11 sessions Background
to terminate .Nm
at logout when waiting for forwarded connection / X11 sessions to terminate.
.It Cm ~? .It Cm ~?
Display a list of escape characters Display a list of escape characters.
.It Cm ~B .It Cm ~B
Send a BREAK to the remote system (only useful for SSH protocol version 2 Send a BREAK to the remote system
and if the peer supports it) (only useful for SSH protocol version 2 and if the peer supports it).
.It Cm ~C .It Cm ~C
Open command line (only useful for adding port forwardings using the Open command line (only useful for adding port forwardings using the
.Fl L .Fl L
and and
.Fl R .Fl R
options) options).
.It Cm ~R .It Cm ~R
Request rekeying of the connection (only useful for SSH protocol version 2 Request rekeying of the connection
and if the peer supports it) (only useful for SSH protocol version 2 and if the peer supports it).
.El .El
.Pp
.Ss X11 and TCP forwarding .Ss X11 and TCP forwarding
.Pp
If the If the
.Cm ForwardX11 .Cm ForwardX11
variable is set to variable is set to
.Dq yes .Dq yes
(or, see the description of the (or see the description of the
.Fl X .Fl X
and and
.Fl x .Fl x
@ -342,8 +337,7 @@ The
.Ev DISPLAY .Ev DISPLAY
value set by value set by
.Nm .Nm
will point to the server machine, but with a display number greater will point to the server machine, but with a display number greater than zero.
than zero.
This is normal, and happens because This is normal, and happens because
.Nm .Nm
creates a creates a
@ -364,7 +358,7 @@ If the
.Cm ForwardAgent .Cm ForwardAgent
variable is set to variable is set to
.Dq yes .Dq yes
(or, see the description of the (or see the description of the
.Fl A .Fl A
and and
.Fl a .Fl a
@ -376,9 +370,7 @@ Forwarding of arbitrary TCP/IP connections over the secure channel can
be specified either on the command line or in a configuration file. be specified either on the command line or in a configuration file.
One possible application of TCP/IP forwarding is a secure connection to an One possible application of TCP/IP forwarding is a secure connection to an
electronic purse; another is going through firewalls. electronic purse; another is going through firewalls.
.Pp
.Ss Server authentication .Ss Server authentication
.Pp
.Nm .Nm
automatically maintains and checks a database containing automatically maintains and checks a database containing
identifications for all hosts it has ever been used with. identifications for all hosts it has ever been used with.
@ -389,14 +381,12 @@ Additionally, the file
.Pa /etc/ssh/ssh_known_hosts .Pa /etc/ssh/ssh_known_hosts
is automatically checked for known hosts. is automatically checked for known hosts.
Any new hosts are automatically added to the user's file. Any new hosts are automatically added to the user's file.
If a host's identification If a host's identification ever changes,
ever changes,
.Nm .Nm
warns about this and disables password authentication to prevent a warns about this and disables password authentication to prevent a
trojan horse from getting the user's password. trojan horse from getting the user's password.
Another purpose of Another purpose of this mechanism is to prevent man-in-the-middle attacks
this mechanism is to prevent man-in-the-middle attacks which could which could otherwise be used to circumvent the encryption.
otherwise be used to circumvent the encryption.
The The
.Cm StrictHostKeyChecking .Cm StrictHostKeyChecking
option can be used to prevent logins to machines whose option can be used to prevent logins to machines whose
@ -404,8 +394,22 @@ host key is not known or has changed.
.Pp .Pp
The options are as follows: The options are as follows:
.Bl -tag -width Ds .Bl -tag -width Ds
.It Fl a .It Fl 1
Disables forwarding of the authentication agent connection. Forces
.Nm
to try protocol version 1 only.
.It Fl 2
Forces
.Nm
to try protocol version 2 only.
.It Fl 4
Forces
.Nm
to use IPv4 addresses only.
.It Fl 6
Forces
.Nm
to use IPv6 addresses only.
.It Fl A .It Fl A
Enables forwarding of the authentication agent connection. Enables forwarding of the authentication agent connection.
This can also be specified on a per-host basis in a configuration file. This can also be specified on a per-host basis in a configuration file.
@ -417,10 +421,28 @@ can access the local agent through the forwarded connection.
An attacker cannot obtain key material from the agent, An attacker cannot obtain key material from the agent,
however they can perform operations on the keys that enable them to however they can perform operations on the keys that enable them to
authenticate using the identities loaded into the agent. authenticate using the identities loaded into the agent.
.It Fl a
Disables forwarding of the authentication agent connection.
.It Fl b Ar bind_address .It Fl b Ar bind_address
Specify the interface to transmit from on machines with multiple Specify the interface to transmit from on machines with multiple
interfaces or aliased addresses. interfaces or aliased addresses.
.It Fl c Ar blowfish|3des|des .It Fl C
Requests compression of all data (including stdin, stdout, stderr, and
data for forwarded X11 and TCP/IP connections).
The compression algorithm is the same used by
.Xr gzip 1 ,
and the
.Dq level
can be controlled by the
.Cm CompressionLevel
option for protocol version 1.
Compression is desirable on modem lines and other
slow connections, but will only slow down things on fast networks.
The default value can be set on a host-by-host basis in the
configuration files; see the
.Cm Compression
option.
.It Fl c Ar blowfish | 3des | des
Selects the cipher to use for encrypting the session. Selects the cipher to use for encrypting the session.
.Ar 3des .Ar 3des
is used by default. is used by default.
@ -428,7 +450,7 @@ It is believed to be secure.
.Ar 3des .Ar 3des
(triple-des) is an encrypt-decrypt-encrypt triple with three different keys. (triple-des) is an encrypt-decrypt-encrypt triple with three different keys.
.Ar blowfish .Ar blowfish
is a fast block cipher, it appears very secure and is much faster than is a fast block cipher; it appears very secure and is much faster than
.Ar 3des . .Ar 3des .
.Ar des .Ar des
is only supported in the is only supported in the
@ -444,18 +466,41 @@ be specified in order of preference.
See See
.Cm Ciphers .Cm Ciphers
for more information. for more information.
.It Fl e Ar ch|^ch|none .It Fl D Ar port
Specifies a local
.Dq dynamic
application-level port forwarding.
This works by allocating a socket to listen to
.Ar port
on the local side, and whenever a connection is made to this port, the
connection is forwarded over the secure channel, and the application
protocol is then used to determine where to connect to from the
remote machine.
Currently the SOCKS4 and SOCKS5 protocols are supported, and
.Nm
will act as a SOCKS server.
Only root can forward privileged ports.
Dynamic port forwardings can also be specified in the configuration file.
.It Fl e Ar ch | ^ch | none
Sets the escape character for sessions with a pty (default: Sets the escape character for sessions with a pty (default:
.Ql ~ ) . .Ql ~ ) .
The escape character is only recognized at the beginning of a line. The escape character is only recognized at the beginning of a line.
The escape character followed by a dot The escape character followed by a dot
.Pq Ql \&. .Pq Ql \&.
closes the connection, followed closes the connection;
by control-Z suspends the connection, and followed by itself sends the followed by control-Z suspends the connection;
escape character once. and followed by itself sends the escape character once.
Setting the character to Setting the character to
.Dq none .Dq none
disables any escapes and makes the session fully transparent. disables any escapes and makes the session fully transparent.
.It Fl F Ar configfile
Specifies an alternative per-user configuration file.
If a configuration file is given on the command line,
the system-wide configuration file
.Pq Pa /etc/ssh/ssh_config
will be ignored.
The default for the per-user configuration file is
.Pa $HOME/.ssh/config .
.It Fl f .It Fl f
Requests Requests
.Nm .Nm
@ -471,6 +516,12 @@ something like
.Ic ssh -f host xterm . .Ic ssh -f host xterm .
.It Fl g .It Fl g
Allows remote hosts to connect to local forwarded ports. Allows remote hosts to connect to local forwarded ports.
.It Fl I Ar smartcard_device
Specifies which smartcard device to use.
The argument is the device
.Nm
should use to communicate with a smartcard used for storing the user's
private RSA key.
.It Fl i Ar identity_file .It Fl i Ar identity_file
Selects a file from which the identity (private key) for Selects a file from which the identity (private key) for
RSA or DSA authentication is read. RSA or DSA authentication is read.
@ -487,15 +538,34 @@ It is possible to have multiple
.Fl i .Fl i
options (and multiple identities specified in options (and multiple identities specified in
configuration files). configuration files).
.It Fl I Ar smartcard_device
Specifies which smartcard device to use.
The argument is the device
.Nm
should use to communicate with a smartcard used for storing the user's
private RSA key.
.It Fl k .It Fl k
Disables forwarding of Kerberos tickets. Disables forwarding of Kerberos tickets.
This may also be specified on a per-host basis in the configuration file. This may also be specified on a per-host basis in the configuration file.
.It Fl L Xo
.Sm off
.Ar port : host : hostport
.Sm on
.Xc
Specifies that the given port on the local (client) host is to be
forwarded to the given host and port on the remote side.
This works by allocating a socket to listen to
.Ar port
on the local side, and whenever a connection is made to this port, the
connection is forwarded over the secure channel, and a connection is
made to
.Ar host
port
.Ar hostport
from the remote machine.
Port forwardings can also be specified in the configuration file.
Only root can forward privileged ports.
IPv6 addresses can be specified with an alternative syntax:
.Sm off
.Xo
.Ar port No / Ar host No /
.Ar hostport .
.Xc
.Sm on
.It Fl l Ar login_name .It Fl l Ar login_name
Specifies the user to log in as on the remote machine. Specifies the user to log in as on the remote machine.
This also may be specified on a per-host basis in the configuration file. This also may be specified on a per-host basis in the configuration file.
@ -506,6 +576,10 @@ be specified in order of preference.
See the See the
.Cm MACs .Cm MACs
keyword for more information. keyword for more information.
.It Fl N
Do not execute a remote command.
This is useful for just forwarding ports
(protocol version 2 only).
.It Fl n .It Fl n
Redirects stdin from Redirects stdin from
.Pa /dev/null .Pa /dev/null
@ -526,14 +600,64 @@ program will be put in the background.
needs to ask for a password or passphrase; see also the needs to ask for a password or passphrase; see also the
.Fl f .Fl f
option.) option.)
.It Fl N
Do not execute a remote command.
This is useful for just forwarding ports
(protocol version 2 only).
.It Fl o Ar option .It Fl o Ar option
Can be used to give options in the format used in the configuration file. 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 This is useful for specifying options for which there is no separate
command-line flag. command-line flag.
For full details of the options listed below, and their possible values, see
.Xr ssh_config 5 .
.Pp
.Bl -tag -width Ds -offset indent -compact
.It AddressFamily
.It BatchMode
.It BindAddress
.It ChallengeResponseAuthentication
.It CheckHostIP
.It Cipher
.It Ciphers
.It ClearAllForwardings
.It Compression
.It CompressionLevel
.It ConnectionAttempts
.It ConnectionTimeout
.It DynamicForward
.It EnableSSHKeysign
.It EscapeChar
.It ForwardAgent
.It ForwardX11
.It GatewayPorts
.It GlobalKnownHostsFile
.It GSSAPIAuthentication
.It GSSAPIDelegateCredentials
.It Host
.It HostbasedAuthentication
.It HostKeyAlgorithms
.It HostKeyAlias
.It HostName
.It IdentityFile
.It KeepAlive
.It LocalForward
.It LogLevel
.It MACs
.It NoHostAuthenticationForLocalhost
.It NumberOfPasswordPrompts
.It PasswordAuthentication
.It Port
.It PreferredAuthentications
.It Protocol
.It ProxyCommand
.It PubkeyAuthentication
.It RemoteForward
.It RhostsRSAAuthentication
.It RSAAuthentication
.It SmartcardDevice
.It StrictHostKeyChecking
.It UsePrivilegedPort
.It User
.It UserKnownHostsFile
.It VerifyHostKeyDNS
.It XAuthLocation
.El
.It Fl p Ar port .It Fl p Ar port
Port to connect to on the remote host. Port to connect to on the remote host.
This can be specified on a This can be specified on a
@ -541,88 +665,11 @@ per-host basis in the configuration file.
.It Fl q .It Fl q
Quiet mode. Quiet mode.
Causes all warning and diagnostic messages to be suppressed. Causes all warning and diagnostic messages to be suppressed.
.It Fl s .It Fl R Xo
May be used to request invocation of a subsystem on the remote system. .Sm off
Subsystems are a feature of the SSH2 protocol which facilitate the use .Ar port : host : hostport
of SSH as a secure transport for other applications (eg. sftp). .Sm on
The subsystem is specified as the remote command. .Xc
.It Fl t
Force pseudo-tty allocation.
This can be used to execute arbitrary
screen-based programs on a remote machine, which can be very useful,
e.g., when implementing menu services.
Multiple
.Fl t
options force tty allocation, even if
.Nm
has no local tty.
.It Fl T
Disable pseudo-tty allocation.
.It Fl v
Verbose mode.
Causes
.Nm
to print debugging messages about its progress.
This is helpful in
debugging connection, authentication, and configuration problems.
Multiple
.Fl v
options increase the verbosity.
The maximum is 3.
.It Fl V
Display the version number and exit.
.It Fl x
Disables X11 forwarding.
.It Fl X
Enables X11 forwarding.
This can also be specified on a per-host basis in a configuration file.
.Pp
X11 forwarding should be enabled with caution.
Users with the ability to bypass file permissions on the remote host
(for the user's X authorization database)
can access the local X11 display through the forwarded connection.
An attacker may then be able to perform activities such as keystroke monitoring.
.It Fl C
Requests compression of all data (including stdin, stdout, stderr, and
data for forwarded X11 and TCP/IP connections).
The compression algorithm is the same used by
.Xr gzip 1 ,
and the
.Dq level
can be controlled by the
.Cm CompressionLevel
option for protocol version 1.
Compression is desirable on modem lines and other
slow connections, but will only slow down things on fast networks.
The default value can be set on a host-by-host basis in the
configuration files; see the
.Cm Compression
option.
.It Fl F Ar configfile
Specifies an alternative per-user configuration file.
If a configuration file is given on the command line,
the system-wide configuration file
.Pq Pa /etc/ssh/ssh_config
will be ignored.
The default for the per-user configuration file is
.Pa $HOME/.ssh/config .
.It Fl L Ar port:host:hostport
Specifies that the given port on the local (client) host is to be
forwarded to the given host and port on the remote side.
This works by allocating a socket to listen to
.Ar port
on the local side, and whenever a connection is made to this port, the
connection is forwarded over the secure channel, and a connection is
made to
.Ar host
port
.Ar hostport
from the remote machine.
Port forwardings can also be specified in the configuration file.
Only root can forward privileged ports.
IPv6 addresses can be specified with an alternative syntax:
.Ar port/host/hostport
.It Fl R Ar port:host:hostport
Specifies that the given port on the remote (server) host is to be Specifies that the given port on the remote (server) host is to be
forwarded to the given host and port on the local side. forwarded to the given host and port on the local side.
This works by allocating a socket to listen to This works by allocating a socket to listen to
@ -638,38 +685,54 @@ Port forwardings can also be specified in the configuration file.
Privileged ports can be forwarded only when Privileged ports can be forwarded only when
logging in as root on the remote machine. logging in as root on the remote machine.
IPv6 addresses can be specified with an alternative syntax: IPv6 addresses can be specified with an alternative syntax:
.Ar port/host/hostport .Sm off
.It Fl D Ar port .Xo
Specifies a local .Ar port No / Ar host No /
.Dq dynamic .Ar hostport .
application-level port forwarding. .Xc
This works by allocating a socket to listen to .Sm on
.Ar port .It Fl s
on the local side, and whenever a connection is made to this port, the May be used to request invocation of a subsystem on the remote system.
connection is forwarded over the secure channel, and the application Subsystems are a feature of the SSH2 protocol which facilitate the use
protocol is then used to determine where to connect to from the of SSH as a secure transport for other applications (eg.\&
remote machine. .Xr sftp 1 ) .
Currently the SOCKS4 and SOCKS5 protocols are supported, and The subsystem is specified as the remote command.
.It Fl T
Disable pseudo-tty allocation.
.It Fl t
Force pseudo-tty allocation.
This can be used to execute arbitrary
screen-based programs on a remote machine, which can be very useful,
e.g., when implementing menu services.
Multiple
.Fl t
options force tty allocation, even if
.Nm .Nm
will act as a SOCKS server. has no local tty.
Only root can forward privileged ports. .It Fl V
Dynamic port forwardings can also be specified in the configuration file. Display the version number and exit.
.It Fl 1 .It Fl v
Forces Verbose mode.
Causes
.Nm .Nm
to try protocol version 1 only. to print debugging messages about its progress.
.It Fl 2 This is helpful in
Forces debugging connection, authentication, and configuration problems.
.Nm Multiple
to try protocol version 2 only. .Fl v
.It Fl 4 options increase the verbosity.
Forces The maximum is 3.
.Nm .It Fl X
to use IPv4 addresses only. Enables X11 forwarding.
.It Fl 6 This can also be specified on a per-host basis in a configuration file.
Forces .Pp
.Nm X11 forwarding should be enabled with caution.
to use IPv6 addresses only. Users with the ability to bypass file permissions on the remote host
(for the user's X authorization database)
can access the local X11 display through the forwarded connection.
An attacker may then be able to perform activities such as keystroke monitoring.
.It Fl x
Disables X11 forwarding.
.El .El
.Sh CONFIGURATION FILES .Sh CONFIGURATION FILES
.Nm .Nm
@ -680,7 +743,7 @@ The file format and configuration options are described in
.Sh ENVIRONMENT .Sh ENVIRONMENT
.Nm .Nm
will normally set the following environment variables: will normally set the following environment variables:
.Bl -tag -width Ds .Bl -tag -width LOGNAME
.It Ev DISPLAY .It Ev DISPLAY
The The
.Ev DISPLAY .Ev DISPLAY
@ -690,7 +753,7 @@ It is automatically set by
to point to a value of the form to point to a value of the form
.Dq hostname:n .Dq hostname:n
where hostname indicates where hostname indicates
the host where the shell runs, and n is an integer >= 1. the host where the shell runs, and n is an integer \*(Ge 1.
.Nm .Nm
uses this special value to forward X11 connections over the secure uses this special value to forward X11 connections over the secure
channel. channel.
@ -768,7 +831,7 @@ and adds lines of the format
.Dq VARNAME=value .Dq VARNAME=value
to the environment if the file exists and if users are allowed to to the environment if the file exists and if users are allowed to
change their environment. change their environment.
See the For more information, see the
.Cm PermitUserEnvironment .Cm PermitUserEnvironment
option in option in
.Xr sshd_config 5 . .Xr sshd_config 5 .
@ -797,7 +860,7 @@ Contains the public key for authentication (public part of the
identity file in human-readable form). identity file in human-readable form).
The contents of the The contents of the
.Pa $HOME/.ssh/identity.pub .Pa $HOME/.ssh/identity.pub
file should be added to file should be added to the file
.Pa $HOME/.ssh/authorized_keys .Pa $HOME/.ssh/authorized_keys
on all machines on all machines
where the user wishes to log in using protocol version 1 RSA authentication. where the user wishes to log in using protocol version 1 RSA authentication.
@ -823,7 +886,8 @@ Lists the public keys (RSA/DSA) that can be used for logging in as this user.
The format of this file is described in the The format of this file is described in the
.Xr sshd 8 .Xr sshd 8
manual page. manual page.
In the simplest form the format is the same as the .pub In the simplest form the format is the same as the
.Pa .pub
identity files. identity files.
This file is not highly sensitive, but the recommended This file is not highly sensitive, but the recommended
permissions are read/write for the user, and not accessible by others. permissions are read/write for the user, and not accessible by others.
@ -839,7 +903,7 @@ by spaces): system name, public key and optional comment field.
When different names are used When different names are used
for the same machine, all such names should be listed, separated by for the same machine, all such names should be listed, separated by
commas. commas.
The format is described on the The format is described in the
.Xr sshd 8 .Xr sshd 8
manual page. manual page.
.Pp .Pp
@ -879,7 +943,7 @@ By default
is not setuid root. is not setuid root.
.It Pa $HOME/.rhosts .It Pa $HOME/.rhosts
This file is used in This file is used in
.Pa \&.rhosts .Em rhosts
authentication to list the authentication to list the
host/user pairs that are permitted to log in. host/user pairs that are permitted to log in.
(Note that this file is (Note that this file is
@ -901,7 +965,9 @@ accessible by others.
Note that by default Note that by default
.Xr sshd 8 .Xr sshd 8
will be installed so that it requires successful RSA host will be installed so that it requires successful RSA host
authentication before permitting \s+2.\s0rhosts authentication. authentication before permitting
.Em rhosts
authentication.
If the server machine does not have the client's host key in If the server machine does not have the client's host key in
.Pa /etc/ssh/ssh_known_hosts , .Pa /etc/ssh/ssh_known_hosts ,
it can be stored in it can be stored in
@ -912,21 +978,20 @@ will automatically add the host key to
.Pa $HOME/.ssh/known_hosts . .Pa $HOME/.ssh/known_hosts .
.It Pa $HOME/.shosts .It Pa $HOME/.shosts
This file is used exactly the same way as This file is used exactly the same way as
.Pa \&.rhosts . .Pa .rhosts .
The purpose for The purpose for
having this file is to be able to use rhosts authentication with having this file is to be able to use rhosts authentication with
.Nm .Nm
without permitting login with without permitting login with
.Nm rlogin .Xr rlogin
or or
.Xr rsh 1 . .Xr rsh 1 .
.It Pa /etc/hosts.equiv .It Pa /etc/hosts.equiv
This file is used during This file is used during
.Pa \&.rhosts .Em rhosts
authentication. authentication.
It contains It contains
canonical hosts names, one per line (the full format is described on canonical hosts names, one per line (the full format is described in the
the
.Xr sshd 8 .Xr sshd 8
manual page). manual page).
If the client host is found in this file, login is If the client host is found in this file, login is
@ -966,6 +1031,7 @@ above.
exits with the exit status of the remote command or with 255 exits with the exit status of the remote command or with 255
if an error occurred. if an error occurred.
.Sh SEE ALSO .Sh SEE ALSO
.Xr gzip 1 ,
.Xr rsh 1 , .Xr rsh 1 ,
.Xr scp 1 , .Xr scp 1 ,
.Xr sftp 1 , .Xr sftp 1 ,
@ -973,6 +1039,7 @@ if an error occurred.
.Xr ssh-agent 1 , .Xr ssh-agent 1 ,
.Xr ssh-keygen 1 , .Xr ssh-keygen 1 ,
.Xr telnet 1 , .Xr telnet 1 ,
.Xr hosts.equiv 5 ,
.Xr ssh_config 5 , .Xr ssh_config 5 ,
.Xr ssh-keysign 8 , .Xr ssh-keysign 8 ,
.Xr sshd 8 .Xr sshd 8