NAME¶
mosh - mobile shell with roaming and intelligent local echo
SYNOPSIS¶
mosh [
options] [--] [user@]host [command...]
 
DESCRIPTION¶
mosh (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
  authenticate with existing means (e.g., public-key authentication or a
  password). 
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 keystroke 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 predictive 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 predicted
  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 configuration
  (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 variables 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".
     
   
  - --predict=WHEN
 
  - Controls use of speculative local echo. WHEN defaults to
      `adaptive' (show predictions on slower links and to smooth out network
      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, without any intervening
      control character keystrokes.
     
   
  - -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
      example, if this is the only port that is forwarded through a firewall to
      the server. Otherwise, mosh will choose a port between 60000 and
      61000.
    
 
   
  - --no-init
 
  - Do not send the smcup initialization string and
      rmcup deinitialization 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 ALSO¶
mosh-client(1), 
mosh-server(1).
 
Project home page: 
http://mosh.mit.edu
 
 
AUTHOR¶
mosh 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