summaryrefslogtreecommitdiff
path: root/usr/src/man/man1/ssh.1
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/man/man1/ssh.1')
-rw-r--r--usr/src/man/man1/ssh.11056
1 files changed, 1056 insertions, 0 deletions
diff --git a/usr/src/man/man1/ssh.1 b/usr/src/man/man1/ssh.1
new file mode 100644
index 0000000000..1bbf10cf95
--- /dev/null
+++ b/usr/src/man/man1/ssh.1
@@ -0,0 +1,1056 @@
+'\" te
+.\" To view license terms, attribution, and copyright for OpenSSH, the default path is /var/sadm/pkg/SUNWsshdr/install/copyright. If the Solaris operating environment has been installed anywhere other than the default, modify the specified path to access the file at
+.\" the installed location.
+.\" Portions Copyright (c) 2009, Sun Microsystems, Inc. All Rights Reserved.
+.TH ssh 1 "20 May 2009" "SunOS 5.11" "User Commands"
+.SH NAME
+ssh \- secure shell client (remote login program)
+.SH SYNOPSIS
+.LP
+.nf
+\fBssh\fR [\fB-l\fR \fIlogin_name\fR] \fIhostname\fR | \fIuser@hostname\fR [ \fIcommand\fR]
+.fi
+
+.LP
+.nf
+\fBssh\fR [\fB-afgknqstvxACNTX1246\fR] [\fB-b\fR \fIbind_address\fR] [\fB-m\fR \fImac_spec\fR]
+ [\fB-c\fR \fIcipher_spec\fR] [\fB-e\fR \fIescape_char\fR] [\fB-i\fR \fIidentity_file\fR]
+ [\fB-l\fR \fIlogin_name\fR] [\fB-F\fR \fIconfigfile\fR] [\fB-o\fR \fIoption\fR] [\fB-p\fR \fIport\fR]
+ [\fB-L\fR [\fIbind_address\fR\fB:\fR]\fIport\fR\fB:\fR\fIhost\fR\fB:\fR\fIhostport\fR]
+ [\fB-R\fR [\fIbind_address\fR\fB:\fR]\fIport\fR\fB:\fR\fIhost\fR\fB:\fR\fIhostport\fR]
+ [\fB-D\fR [\fIbind_address\fR\fB:\fR]\fIport\fR] \fIhostname\fR | \fIuser\fR\fB@\fR\fIhostname\fR [\fIcommand\fR]
+.fi
+
+.SH DESCRIPTION
+.sp
+.LP
+\fBssh\fR (Secure Shell) is a program for logging into a remote machine and for
+executing commands on a remote machine. It is intended to replace \fBrlogin\fR
+and \fBrsh\fR, and to provide secure encrypted communications between two
+untrusted hosts over an insecure network. X11 connections and arbitrary TCP/IP
+ports can also be forwarded over the secure channel.
+.sp
+.LP
+\fBssh\fR connects and logs into the specified hostname. The user must prove
+his or her identity to the remote machine using one of several methods
+depending on the protocol version used:
+.SS "SSH Protocol Version 1"
+.sp
+.LP
+First, if the machine the user logs in from is listed in \fB/etc/hosts.equiv\fR
+or \fB/etc/shosts.equiv\fR on the remote machine, and the user names are the
+same on both sides, the user is immediately permitted to log in. Second,
+if .\fBrhosts\fR or \fB\&.shosts\fR exists in the user's home directory on the
+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 permitted to log in. This
+form of authentication alone is normally not allowed by the server because it
+is not secure.
+.sp
+.LP
+The second (and primary) authentication method is the \fBrhosts\fR or
+\fBhosts.equiv\fR method combined with RSA-based host authentication. It means
+that if the login would be permitted by \fB$HOME/.rhosts\fR,
+\fB$HOME/.shosts\fR, \fB/etc/hosts.equiv\fR, or \fB/etc/shosts.equiv\fR, and if
+additionally the server can verify the client's host key (see
+\fB/etc/ssh_known_hosts\fR in the FILES section), only then is login permitted.
+This authentication method closes security holes due to \fBIP\fR spoofing,
+\fBDNS\fR spoofing, and routing spoofing.
+.sp
+.LP
+\fBNote to the administrator:\fR \fB/etc/hosts.equiv\fR, \fB$HOME/.rhosts\fR,
+and the rlogin/rsh protocol in general, are inherently insecure and should be
+disabled if security is desired.
+.sp
+.LP
+As a third authentication method, \fBssh\fR supports \fBRSA\fR-based
+authentication. The scheme is based on public-key cryptography. There are
+cryptosystems where encryption and decryption are done using separate keys, and
+it is not possible to derive the decryption key from the encryption key.
+\fBRSA\fR is one such system. The idea is that each user creates a
+public/private key pair for authentication purposes. The server knows the
+public key, and only the user knows the private key. The file
+\fB$HOME/.ssh/authorized_keys\fR lists the public keys that are permitted for
+logging in. When the user logs in, the \fBssh\fR program tells the server which
+key pair it would like to use for authentication. The server checks if this key
+is permitted, and if so, sends the user (actually the \fBssh\fR program running
+on behalf of the user) a challenge in the form of a random number, encrypted by
+the user's public key. The challenge can only be decrypted using the proper
+private key. The user's client then decrypts the challenge using the private
+key, proving that he or she knows the private key but without disclosing it to
+the server.
+.sp
+.LP
+\fBssh\fR implements the \fBRSA\fR authentication protocol automatically. The
+user creates his or her \fBRSA\fR key pair by running \fBssh-keygen\fR(1). This
+stores the private key in \fB$HOME/.ssh/identity\fR and the public key in
+\fB$HOME/.ssh/identity.pub\fR in the user's home directory. The user should
+then copy the \fBidentity.pub\fR to \fB$HOME/.ssh/authorized_keys\fR in his or
+her home directory on the remote machine (the \fBauthorized_keys\fR file
+corresponds to the conventional \fB$HOME/.rhosts\fR file, and has one key per
+line, though the lines can be very long). After this, the user can log in
+without giving the password. \fBRSA\fR authentication is much more secure than
+\fBrhosts\fR authentication.
+.sp
+.LP
+The most convenient way to use \fBRSA\fR authentication can be with an
+authentication agent. See \fBssh-agent\fR(1) for more information.
+.sp
+.LP
+If other authentication methods fail, \fBssh\fR prompts the user for a
+password. The password is sent to the remote host for checking. However, since
+all communications are encrypted, the password cannot be seen by someone
+listening on the network.
+.SS "SSH Protocol Version 2"
+.sp
+.LP
+The SSH version 2 protocol supports multiple user authentication methods, some
+of which are similar to those available with the SSH protocol version 1. These
+authentication mechanisms are negotiated by the client and server, with the
+client trying methods in the order specified in the
+\fBPreferredAuthentications\fR client configuration option. The server decides
+when enough authentication methods have passed successfully so as to complete
+the authentication phase of the protocol.
+.sp
+.LP
+When a user connects by using protocol version 2, similar authentication
+methods are available. Using the default values for
+\fBPreferredAuthentications\fR, the client tries to authenticate first by using
+the hostbased method. If this method fails, public key authentication is
+attempted. Finally, if this method fails, keyboard-interactive and password
+authentication are tried.
+.sp
+.LP
+The public key method is similar to \fBRSA\fR authentication described in the
+previous section and allows the \fBRSA\fR or \fBDSA\fR algorithm to be used:
+The client uses his or her private key, \fB$HOME/.ssh/id_dsa\fR or
+\fB$HOME/.ssh/id_rsa\fR, to sign the session identifier and sends the result to
+the server. The server checks whether the matching public key is listed in
+\fB$HOME/.ssh/authorized_keys\fR 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 and is only known to the client and the server.
+.sp
+.LP
+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, or an extended
+prompt/reply protocol can be engaged.
+.sp
+.LP
+Additionally, \fBssh\fR supports hostbased or challenge response
+authentication.
+.sp
+.LP
+Protocol 2 provides additional mechanisms for confidentiality (the traffic is
+encrypted using 3DES, Blowfish, CAST128 or Arcfour) and integrity
+(\fBhmac-sha1\fR, \fBhmac-md5\fR). Protocol 1 lacks a strong mechanism for
+ensuring the integrity of the connection.
+.SS "Login Session and Remote Execution"
+.sp
+.LP
+When the user's identity has been accepted by the server, the server either
+executes the specified command, or logs into the machine and gives the user a
+normal shell on the remote machine. All communication with the remote command
+or shell is automatically encrypted.
+.sp
+.LP
+If a pseudo-terminal has been allocated (normal login session), the user can
+use the escape characters noted below. If a pseudo-terminal has been allocated
+(normal login session), the user can disconnect with \fB~.\fR, and suspend
+\fBssh\fR with \fB~^Z\fR. All forwarded connections can be listed with
+\fB~#\fR. If the session blocks waiting for forwarded X11 or TCP/IP connections
+to terminate, \fBssh\fR can be backgrounded with \fB~&\fR, although this should
+not be used while the user shell is active, as it can cause the shell to hang.
+All available escapes can be listed with \fB~?\fR.
+.sp
+.LP
+A single tilde character can be sent as \fB~~\fR, or by following the tilde
+with a character other than those described above. The escape character must
+always follow a newline to be interpreted as special. The escape character can
+be changed in configuration files or on the command line.
+.sp
+.LP
+If no pseudo tty has been allocated, the session is transparent and can be used
+to reliably transfer binary data. On most systems, setting the escape character
+to "\fBnone\fR" also makes the session transparent even if a tty is used.
+.sp
+.LP
+The session terminates when the command or shell on the remote 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 of \fBssh\fR.
+.SS "Escape Characters"
+.sp
+.LP
+When a pseudo-terminal has been requested, \fBssh\fR supports a number of
+functions through the use of an escape character.
+.sp
+.LP
+A single tilde character can be sent as \fB~~\fR or by following the tilde with
+a character other than those described below. The escape character must always
+follow a newline to be interpreted as special. The escape character can be
+changed in configuration files using the \fBEscapeChar\fR configuration
+directive or on the command line by the \fB-e\fR option.
+.sp
+.LP
+The supported escapes, assuming the default \fB~\fR, are:
+.sp
+.ne 2
+.mk
+.na
+\fB\fB~.\fR\fR
+.ad
+.RS 7n
+.rt
+Disconnect.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB~^Z\fR\fR
+.ad
+.RS 7n
+.rt
+Background \fBssh\fR.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB~#\fR\fR
+.ad
+.RS 7n
+.rt
+List forwarded connections.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB~&\fR\fR
+.ad
+.RS 7n
+.rt
+Background \fBssh\fR at logout when waiting for forwarded connection / X11
+sessions to terminate.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB~?\fR\fR
+.ad
+.RS 7n
+.rt
+Display a list of escape characters.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB~B\fR\fR
+.ad
+.RS 7n
+.rt
+Send a break to the remote system. Only useful for SSH protocol version 2 and
+if the peer supports it.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB~C\fR\fR
+.ad
+.RS 7n
+.rt
+Open command line. Only useful for adding port forwardings using the \fB-L\fR
+and \fB-R\fR options).
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB~R\fR\fR
+.ad
+.RS 7n
+.rt
+Request rekeying of the connection. Only useful for SSH protocol version 2 and
+if the peer supports it.
+.RE
+
+.SS "X11 and TCP Forwarding"
+.sp
+.LP
+If the \fBForwardX11\fR variable is set to ``\fByes\fR'' (or, see the
+description of the \fB-X\fR and \fB-x\fR options described later) and the user
+is using X11 (the \fBDISPLAY\fR environment variable is set), the connection to
+the X11 display is automatically forwarded to the remote side in such a way
+that any X11 programs started from the shell (or command) goes through the
+encrypted channel, and the connection to the real X server is made from the
+local machine. The user should not manually set \fBDISPLAY\fR. Forwarding of
+X11 connections can be configured on the command line or in configuration
+files.
+.sp
+.LP
+The \fBDISPLAY\fR value set by \fBssh\fR points to the server machine, but with
+a display number greater than zero. This is normal behavior, because \fBssh\fR
+creates a "proxy" X11 server on the server machine for forwarding the
+connections over the encrypted channel.
+.sp
+.LP
+\fBssh\fR also automatically sets up \fBXauthority\fR data on the server
+machine. For this purpose, it generates a random authorization cookie, store it
+in \fBXauthority\fR on the server, and verify that any forwarded connections
+carry this cookie and replace it by the real cookie when the connection is
+opened. The real authentication cookie is never sent to the server machine (and
+no cookies are sent in the plain).
+.sp
+.LP
+If the \fBForwardAgent\fR variable is set to "\fByes\fR" (or, see the
+description of the \fB-A\fR and \fB-a\fR options described later) and the user
+is using an authentication agent, the connection to the agent is automatically
+forwarded to the remote side.
+.sp
+.LP
+Forwarding of arbitrary TCP/IP connections over the secure channel can 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 electronic purse.
+Another possible application is firewall traversal.
+.SS "Server Authentication"
+.sp
+.LP
+\fBssh\fR automatically maintains and checks a database containing
+identifications for all hosts it has ever been used with. Host keys are stored
+in \fB$HOME/.ssh/known_hosts\fR in the user's home directory. Additionally, the
+file \fB/etc/ssh_known_hosts\fR is automatically checked for known hosts. The
+behavior of \fBssh\fR with respect to unknown host keys is controlled by the
+\fBStrictHostKeyChecking\fR parameter. If a host's identification ever changes,
+\fBssh\fR warns about this and disables password authentication to prevent a
+trojan horse from getting the user's password. Another purpose of this
+mechanism is to prevent attacks by intermediaries which could otherwise be used
+to circumvent the encryption. The \fBStrictHostKeyChecking\fR option can be
+used to prevent logins to machines whose host key is not known or has changed.
+.sp
+.LP
+However, when using key exchange protected by GSS-API, the server can advertise
+a host key. The client automatically adds this host key to its known hosts
+file, \fB$HOME/.ssh/known_hosts\fR, regardless of the setting of the
+\fBStrictHostKeyChecking\fR option, unless the advertised host key collides
+with an existing known hosts entry.
+.sp
+.LP
+When the user's GSS-API credentials expire, the client continues to be able to
+rekey the session using the server's public host key to protect the key
+exchanges.
+.SS "GSS-API User and Server Authentication"
+.sp
+.LP
+\fBssh\fR uses the user's GSS-API credentials to authenticate the client to the
+server wherever possible, if \fBGssKeyEx\fR and/or \fBGssAuthentication\fR are
+set.
+.sp
+.LP
+With \fBGssKeyEx\fR, one can have an SSHv2 server that has no host public keys,
+so that only \fBGssKeyEx\fR can be used. With such servers, rekeying fails if
+the client's credentials are expired.
+.sp
+.LP
+GSS-API user authentication has the disadvantage that it does not obviate the
+need for SSH host keys, but its failure does not impact rekeying. \fBssh\fR can
+try other authentication methods (such as public key, password, and so on) if
+GSS-API authentication fails.
+.sp
+.LP
+Delegation of GSS-API credentials can be quite useful, but is not without
+danger. As with passwords, users should not delegate GSS credentials to
+untrusted servers, since a compromised server can use a user's delegated GSS
+credentials to impersonate the user.
+.sp
+.LP
+GSS-API user authorization is covered in \fBgss_auth_rules\fR(5).
+.sp
+.LP
+Rekeying can be used to redelegate credentials when \fBGssKeyEx\fR is
+"\fByes\fR". (See \fB~R\fR under \fBEscape Characters\fR above.)
+.SH OPTIONS
+.sp
+.LP
+The following options are supported:
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-1\fR\fR
+.ad
+.sp .6
+.RS 4n
+Forces \fBssh\fR to try protocol version 1 only.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-2\fR\fR
+.ad
+.sp .6
+.RS 4n
+Forces \fBssh\fR to try protocol version 2 only.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-4\fR\fR
+.ad
+.sp .6
+.RS 4n
+Forces \fBssh\fR to use IPv4 addresses only.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-6\fR\fR
+.ad
+.sp .6
+.RS 4n
+Forces \fBssh\fR to use IPv6 addresses only.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-a\fR\fR
+.ad
+.sp .6
+.RS 4n
+Disables forwarding of the authentication agent connection.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-A\fR\fR
+.ad
+.sp .6
+.RS 4n
+Enables forwarding of the authentication agent connection. This can also be
+specified on a per-host basis in a configuration file.
+.sp
+Agent forwarding should be enabled with caution. Users with the ability to
+bypass file permissions on the remote host (for the agent's UNIX-domain socket)
+can access the local agent through the forwarded connection. An attacker cannot
+obtain key material from the agent. However, the attacker can perform
+operations on the keys that enable the attacker to authenticate using the
+identities loaded into the agent.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-b\fR \fIbind_address\fR\fR
+.ad
+.sp .6
+.RS 4n
+Specifies the interface to transmit from on machines with multiple interfaces
+or aliased addresses.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-c\fR \fIcipher_spec\fR\fR
+.ad
+.sp .6
+.RS 4n
+Selects the cipher specification for encrypting the session.
+.sp
+For protocol version 1, \fIcipher_spec\fR is a single cipher. See the
+\fBCipher\fR option in \fBssh_config\fR(4) for more information.
+.sp
+For protocol version 2, \fIcipher_spec\fR is a comma-separated list of ciphers
+listed in order of preference. See the \fICiphers\fR option in
+\fBssh_config\fR(4) for more information.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-C\fR\fR
+.ad
+.sp .6
+.RS 4n
+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 \fBgzip\fR(1). The \fBgzip\fR man page is available in the
+\fBSUNWsfman\fR package. The "level" can be controlled by the
+\fBCompressionLevel\fR option (see \fBssh_config\fR(4)). Compression is
+desirable on modem lines and other slow connections, but only slows down things
+on fast networks. The default value can be set on a host-by-host basis in the
+configuration files. See the \fBCompression\fR option in \fBssh_config\fR(4).
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-D\fR [\fIbind_address\fR\fB:\fR]\fIport\fR\fR
+.ad
+.sp .6
+.RS 4n
+Specifies a local \fBdynamic\fR application-level port forwarding. This works
+by allocating a socket to listen to port on the local side, optionally bound to
+the specified \fIbind_address\fR. Whenever a connection is made to this port,
+the connection is forwarded over the secure channel. The application protocol
+is then used to determine where to connect to from the remote machine.
+Currently, the \fBSOCKS4\fR and \fBSOCKS5\fR protocols are supported and
+\fBssh\fR acts as a SOCKS server. Only a user with enough privileges can
+forward privileged ports. Dynamic port forwardings can also be specified in the
+configuration file.
+.sp
+IPv6 addresses can be specified with an alternative syntax:
+\fB[\fR\fIbind_address\fR\fB/]\fR\fIport\fR or by enclosing the address in
+square brackets. By default, the local port is bound in accordance with the
+\fBGatewayPorts\fR setting. However, an explicit \fIbind_address\fR can be used
+to bind the connection to a specific address. The \fIbind_address\fR of
+\fBlocalhost\fR indicates that the listening port be bound for local use only,
+while an empty address or \fB*\fR indicates that the port should be available
+from all interfaces.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-e\fR \fIch\fR | ^\fIch\fR | none\fR
+.ad
+.sp .6
+.RS 4n
+Sets the escape character for sessions with a pty (default: `\fB~\fR'). The
+escape character is only recognized at the beginning of a line. The escape
+character followed by a dot (\fB\&.\fR) closes the connection. If followed by
+CTRL-z, the escape character suspends the connection. If followed by itself,
+the escape character sends itself once. Setting the character to \fBnone\fR
+disables any escapes and makes the session fully transparent.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-f\fR\fR
+.ad
+.sp .6
+.RS 4n
+Requests \fBssh\fR to go to background just before command execution. This is
+useful if \fBssh\fR is going to ask for passwords or passphrases, but the user
+wants it in the background. This implies the \fB-n\fR option. The recommended
+way to start X11 programs at a remote site is with something like \fBssh\fR
+\fB-f\fR \fIhost\fR \fIxterm\fR.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-F\fR \fIconfigfile\fR\fR
+.ad
+.sp .6
+.RS 4n
+Specifies an alternative per-user configuration file. If a configuration file
+is specified on the command line, the system-wide configuration file,
+\fB/etc/ssh_config\fR, is ignored. The default for the per-user configuration
+file is \fB$HOME/.ssh/config\fR.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-g\fR\fR
+.ad
+.sp .6
+.RS 4n
+Allows remote hosts to connect to local forwarded ports.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-i\fR \fIidentity_file\fR\fR
+.ad
+.sp .6
+.RS 4n
+Selects a file from which the identity (private key) for \fBRSA\fR or \fBDSA\fR
+authentication is read. The default is \fB$HOME/.ssh/identity\fR for protocol
+version 1, and \fB$HOME/.ssh/id_rsa\fR and \fB$HOME/.ssh/id_dsa\fR for protocol
+version 2. Identity files can also be specified on a per-host basis in the
+configuration file. It is possible to have multiple \fB-i\fR options (and
+multiple identities specified in configuration files).
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-l\fR \fIlogin_name\fR\fR
+.ad
+.sp .6
+.RS 4n
+Specifies the user to log in as on the remote machine. This also can be
+specified on a per-host basis in the configuration file.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-L\fR [\fIbind_address:\fR]\fIport\fR:\fIhost\fR:\fIhostport\fR\fR
+.ad
+.sp .6
+.RS 4n
+Specifies that the specified port on the local (client) host is to be forwarded
+to the specified host and port on the remote side. This works by allocating a
+socket to listen to the port on the local side, optionally bound to the
+specified \fIbind_address\fR. Then, whenever a connection is made to this port,
+the connection is forwarded over the secure channel and a connection is made to
+host port \fIhostport\fR from the remote machine. Port forwardings can also be
+specified in the configuration file. Only a user with enough privileges can
+forward privileged ports. IPv6 addresses can be specified with an alternative
+syntax: \fB[\fR\fIbind_address\fR\fB/]\fR\fIport\fR\fB/\fR\fIhost\fR\fB/\fR\fIh
+ostport\fR or by enclosing the address in square brackets.
+.sp
+By default, the local port is bound in accordance with the \fBGatewayPorts\fR
+setting. However, an explicit \fIbind_address\fR can be used to bind the
+connection to a specific address. The \fIbind_address\fR of \fBlocalhost\fR
+indicates that the listening port be bound for local use only, while an empty
+address or \fB*\fR indicates that the port should be available from all
+interfaces.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-m\fR \fImac_spec\fR\fR
+.ad
+.sp .6
+.RS 4n
+Additionally, for protocol version 2 a comma-separated list of \fBMAC\fR
+(message authentication code) algorithms can be specified in order of
+preference. See the MACs keyword for more information.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-n\fR\fR
+.ad
+.sp .6
+.RS 4n
+Redirects \fBstdin\fR from \fB/dev/null\fR (actually, prevents reading from
+\fBstdin\fR). This must be used when \fBssh\fR is run in the background. A
+common trick is to use this to run X11 programs on a remote machine. For
+example,
+.sp
+.in +2
+.nf
+ssh -n shadows.cs.hut.fi emacs &
+.fi
+.in -2
+.sp
+
+starts an \fBemacs\fR on \fBshadows.cs.hut.fi\fR, and the X11 connection is
+automatically forwarded over an encrypted channel. The \fBssh\fR program is put
+in the background. This does not work if \fBssh\fR needs to ask for a password
+or passphrase. See also the \fB-f\fR option.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-N\fR\fR
+.ad
+.sp .6
+.RS 4n
+Does not execute a remote command. This is useful if you just want to forward
+ports (protocol version 2 only).
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-o\fR \fIoption\fR\fR
+.ad
+.sp .6
+.RS 4n
+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. The option has the same format as a line in the configuration file.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-p\fR \fIport\fR\fR
+.ad
+.sp .6
+.RS 4n
+Specifies the port to connect to on the remote host. This can be specified on a
+per-host basis in the configuration file.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-P\fR\fR
+.ad
+.sp .6
+.RS 4n
+Obsoleted option. SSHv1 connections from privileged ports are not supported.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-q\fR\fR
+.ad
+.sp .6
+.RS 4n
+Quiet mode. Causes all warning and diagnostic messages to be suppressed. Only
+fatal errors are displayed.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-R\fR [\fIbind_address\fR:]\fIport\fR:\fIhost\fR:\fIhostport\fR\fR
+.ad
+.sp .6
+.RS 4n
+Specifies that the specified port on the remote (server) host is to be
+forwarded to the specified host and port on the local side. This works by
+allocating a socket to listen to the port on the remote side. Then, whenever a
+connection is made to this port, the connection is forwarded over the secure
+channel and a connection is made to host port \fIhostport\fR from the local
+machine. Port forwardings can also be specified in the configuration file.
+Privileged ports can be forwarded only when logging in on the remote machine as
+a user with enough privileges.
+.sp
+IPv6 addresses can be specified by enclosing the address in square braces or
+using an alternative syntax: \fB[\fR\fIbind_address\fR\fB/]\fR\fIhost\fR\fB/\fR
+\fIport\fR\fB/\fR\fIhostport\fR.
+.sp
+By default, the listening socket on the server is bound to the loopback
+interface only. This can be overridden by specifying a \fIbind_address\fR. An
+empty \fIbind_address\fR, or the address \fB*\fR, indicates that the remote
+socket should listen on all interfaces. Specifying a remote \fIbind_address\fR
+only succeeds if the server's \fBGatewayPorts\fR option is enabled. See
+\fBsshd_config\fR(4).
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-s\fR\fR
+.ad
+.sp .6
+.RS 4n
+Can be used to request invocation of a subsystem on the remote system.
+Subsystems are a feature of the SSH2 protocol which facilitate the use of SSH
+as a secure transport for other applications, for example, \fBsftp\fR. The
+subsystem is specified as the remote command.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-t\fR\fR
+.ad
+.sp .6
+.RS 4n
+Forces pseudo-tty allocation. This can be used to execute arbitrary
+screen-based programs on a remote machine, which can be very useful, for
+example, when implementing menu services. Multiple \fB-t\fR options force
+allocation, even if \fBssh\fR has no local \fBtty\fR.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-T\fR\fR
+.ad
+.sp .6
+.RS 4n
+Disables pseudo-tty allocation (protocol version 2 only).
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-v\fR\fR
+.ad
+.sp .6
+.RS 4n
+Verbose mode. Causes \fBssh\fR to print debugging messages about its progress.
+This is helpful in debugging connection, authentication, and configuration
+problems. Multiple \fB-v\fR options increase the verbosity. Maximum is 3.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-x\fR\fR
+.ad
+.sp .6
+.RS 4n
+Disables X11 forwarding.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-X\fR\fR
+.ad
+.sp .6
+.RS 4n
+Enables X11 forwarding. This can also be specified on a per-host basis in a
+configuration file.
+.sp
+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
+can then be able to perform activities such as keystroke monitoring.
+.sp
+For this reason, X11 forwarding might be subjected to X11 SECURITY extension
+restrictions. Refer to the \fBForwardX11Trusted\fR directive in
+\fBssh_config\fR(4) for more information.
+.sp
+If X11 forwarding is enabled, remote X11 clients is trusted by default. This
+means that they have full access to the original X11 display.
+.RE
+
+.SH ENVIRONMENT VARIABLES
+.sp
+.LP
+\fBssh\fR normally sets the following environment variables:
+.sp
+.ne 2
+.mk
+.na
+\fB\fBDISPLAY\fR\fR
+.ad
+.sp .6
+.RS 4n
+The \fBDISPLAY\fR variable must be set for X11 display forwarding to work.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fBSSH_ASKPASS\fR\fR
+.ad
+.sp .6
+.RS 4n
+If \fBssh\fR needs a passphrase, it reads the passphrase from the current
+terminal if it was run from a terminal. If \fBssh\fR does not have a terminal
+associated with it but \fBDISPLAY\fR and \fBSSH_ASKPASS\fR are set, it executes
+the program specified by \fBSSH_ASKPASS\fR and opens an X11 window to read the
+passphrase. This is particularly useful when calling \fBssh\fR from a .Xsession
+or related script. On some machines it might be necessary to redirect the input
+from \fB/dev/null\fR to make this work. The system is shipped with
+\fB/usr/lib/ssh/ssh-askpass\fR which is the default value for \fBSSH_ASKPASS\fR
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fBSSH_AUTH_SOCK\fR\fR
+.ad
+.sp .6
+.RS 4n
+Indicates the path of a unix-domain socket used to communicate with the agent.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fBSSH_LANGS\fR\fR
+.ad
+.sp .6
+.RS 4n
+A comma-separated list of IETF language tags (see RFC3066) indicating the
+languages that the user can read and write. Used for negotiation of the locale
+on the server.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fBLANG\fR, \fBLC_ALL\fR, \fBLC_COLLATE\fR, \fBLC_CTYPE\fR,\fR
+.ad
+.br
+.na
+\fB\fBLC_MESSAGES\fR, \fBLC_MONETARY\fR, \fBLC_NUMERIC\fR, \fBLC_TIME\fR\fR
+.ad
+.sp .6
+.RS 4n
+The values of these environment variables can be set in remote sessions
+according to the locale settings on the client side and availability of support
+for those locales on the server side. Environment Variable Passing (see \fIRFC
+4254\fR) is used for passing them over to the server side.
+.RE
+
+.sp
+.LP
+See the \fBENVIRONMENT VARIABLES\fR section in the \fBsshd\fR(1M) man page for
+more information on how locale setting can be further changed depending on
+server side configuration.
+.SH EXIT STATUS
+.sp
+.LP
+The status of the remote program is returned as the exit status of \fBssh\fR.
+\fB255\fR is returned if an error occurred at anytime during the \fBssh\fR
+connection, including the initial key exchange.
+.SH FILES
+.sp
+.ne 2
+.mk
+.na
+\fB\fB$HOME/.ssh/known_hosts\fR\fR
+.ad
+.RS 26n
+.rt
+Records host keys for all hosts the user has logged into that are not in
+\fB/etc/ssh/ssh_known_hosts\fR. See \fBsshd\fR(1M).
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB$HOME/.ssh/identity\fR\fR
+.ad
+.br
+.na
+\fB\fB$HOME/.ssh/id_dsa\fR\fR
+.ad
+.br
+.na
+\fB\fB$HOME/.ssh/id_ssa\fR\fR
+.ad
+.RS 26n
+.rt
+Contains the authentication identity of the user. These files are for protocol
+1 \fBRSA\fR, protocol 2 \fBDSA\fR, and protocol 2 \fBRSA\fR, respectively.
+These files contain sensitive data and should be readable by the user but not
+accessible by others (read/write/execute). \fBssh\fR ignores a private key file
+if it is accessible by others. It is possible to specify a passphrase when
+generating the key. The passphrase is used to encrypt the sensitive part of
+this file using \fB3DES\fR.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB/etc/ssh/sshrc\fR\fR
+.ad
+.RS 26n
+.rt
+Commands in this file are executed by \fBssh\fR when the user logs in just
+before the user's shell or command is started. See \fBsshd\fR(1M) for more
+information.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB$HOME/.ssh/rc\fR\fR
+.ad
+.RS 26n
+.rt
+Commands in this file are executed by \fBssh\fR when the user logs in just
+before the user's shell or command is started. See \fBsshd\fR(1M) for more
+information.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB$HOME/.ssh/environment\fR\fR
+.ad
+.RS 26n
+.rt
+Contains additional definitions for environment variables. See ENVIRONMENT
+VARIABLES.
+.RE
+
+.SH ATTRIBUTES
+.sp
+.LP
+See \fBattributes\fR(5) for descriptions of the following attributes:
+.sp
+
+.sp
+.TS
+tab() box;
+cw(2.75i) |cw(2.75i)
+lw(2.75i) |lw(2.75i)
+.
+ATTRIBUTE TYPEATTRIBUTE VALUE
+_
+Interface StabilitySee below.
+.TE
+
+.sp
+.LP
+The command line syntax is Committed. The remote locale selection through
+passing \fBLC_*\fR environment variables is Uncommitted.
+.SH SEE ALSO
+.sp
+.LP
+\fBrlogin\fR(1), \fBrsh\fR(1), \fBscp\fR(1), \fBssh-add\fR(1),
+\fBssh-agent\fR(1), \fBssh-keygen\fR(1), \fBssh-http-proxy-connect\fR(1),
+\fBssh-socks5-proxy-connect\fR(1), \fBtelnet\fR(1), \fBsshd\fR(1M),
+\fBssh_config\fR(4), \fBsshd_config\fR(4), \fBattributes\fR(5),
+\fBgss_auth_rules\fR(5), \fBkerberos\fR(5), \fBprivileges\fR(5)
+.sp
+.LP
+\fIRFC 1928\fR
+.sp
+.LP
+\fIRFC 4254\fR