MOSH(1)MOSH(1)NAMEmosh - mobile shell with roaming and intelligent local echo
SYNOPSISmosh [options] [--] [user@]host [command...]
DESCRIPTIONmosh (mobile shell) is a remote terminal application that supports
intermittent connectivity, allows roaming, and provides speculative
local echo and line editing of user keystrokes.
Compared with ssh, mosh is more robust — its connections stay up across
sleeps and changes in the client's IP address — and more responsive,
because the protocol is tolerant of packet loss and the client can echo
most keystrokes immediately, without waiting for a network round-trip.
mosh uses ssh to establish a connection to the remote host and authen‐
ticate with existing means (e.g., public-key authentication or a pass‐
word). mosh executes the unprivileged mosh-server helper program on the
server, then closes the SSH connection and starts the mosh-client,
which establishes a long-lived datagram connection over UDP.
To improve responsiveness, mosh runs a predictive model of the server's
behavior in the background, trying to guess the effect of each key‐
stroke on the screen. It makes predictions for normal typing,
backspace, and the left- and right-arrow keys. When it is confident,
mosh displays the predictions without waiting for the server. The pre‐
dictive model must prove itself anew on each row of the terminal and
after each control character, so mosh avoids echoing passwords or non-
echoing editor commands.
By default, mosh shows its predictions only on high-latency connections
and to smooth out network glitches. (On longer-latency links, the pre‐
dicted cells are underlined until confirmed by the server.) Occasional
echo mistakes are corrected within a network round-trip and do not
cause lasting effect.
mosh does not support X forwarding or the non-interactive uses of SSH,
including port forwarding or sshfs. mosh works through typical client-
side network address translators but requires UDP to pass between
client and server. By default, mosh uses the ports between 60000 and
61000, but allows the user to request a particular UDP port instead.
mosh will do its best to arrange a UTF-8 character set locale on the
client and server. The client must have locale-related environment
variables that specify UTF-8. mosh will pass these client variables to
the mosh-server on its command line, but in most cases they will not
need to be used. mosh-server first attempts to use its own locale-
related environment variables, which come from the system default con‐
figuration (sometimes /etc/default/locale) or from having been passed
over the SSH connection. But if these variables don't call for the use
of UTF-8, mosh-server will apply the locale-related environment vari‐
ables from the client and try again.
OPTIONS
command
Command to run on remote host. By default, mosh executes a login
shell.
--client=PATH
path to client helper on local machine (default: "mosh-client")
--server=COMMAND
command to run server helper on remote machine (default: "mosh-
server")
The server helper is unprivileged and can be installed in the
user's home directory.
--ssh=COMMAND
OpenSSH command to remotely execute mosh-server on remote
machine (default: "ssh")
An alternate ssh port can be specified with, e.g., --ssh="ssh -p
2222".
--forward-agent
Enable ssh authentication agent forwarding. If you use this,
please be aware of the security implications.
--predict=WHEN
Controls use of speculative local echo. WHEN defaults to `adap‐
tive' (show predictions on slower links and to smooth out net‐
work glitches) and can also be `always` or `never'.
The MOSH_PREDICTION_DISPLAY environment variable controls this
setting permanently and can adopt the same three values.
Even on `always', mosh will only show predictions when it is
confident. This generally means a previous prediction on the
same row of the terminal has been confirmed by the server, with‐
out any intervening control character keystrokes.
-A Synonym for --forward-agent
-a Synonym for --predict=always
-n Synonym for --predict=never
-p PORT[:PORT2], --port=PORT[:PORT2]
Use a particular server-side UDP port or port range, for exam‐
ple, if this is the only port that is forwarded through a fire‐
wall to the server. Otherwise, mosh will choose a port between
60000 and 61000.
--no-init
Do not send the smcup initialization string and rmcup deinitial‐
ization string to the client's terminal. On many terminals this
disables alternate screen mode.
ESCAPE SEQUENCES
The escape sequence to shut down the connection is Ctrl-^ . (typically
typed with Ctrl-Shift-6, then a period). To send a literal Ctrl-^, type
Ctrl-^ ^. The sequence Ctrl-^ Ctrl-Z suspends the client.
ENVIRONMENT VARIABLES
MOSH_PREDICTION_DISPLAY
Controls local echo as described above.
MOSH_TITLE_NOPREFIX
When set, inhibits prepending "[mosh]" to window title.
SEE ALSOmosh-client(1), mosh-server(1).
Project home page: http://mosh.mit.edu
AUTHORmosh was written by Keith Winstein <mosh-devel@mit.edu>.
BUGS
Please report bugs to mosh-devel@mit.edu. Users may also subscribe to
the mosh-users@mit.edu mailing list, at
http://mailman.mit.edu/mailman/listinfo/mosh-users
October 2012 MOSH(1)