aboutsummaryrefslogtreecommitdiffhomepage
path: root/README.md
diff options
context:
space:
mode:
authorGravatar Keegan McAllister <mcallister.keegan@gmail.com>2012-03-05 11:41:24 -0800
committerGravatar Keegan McAllister <mcallister.keegan@gmail.com>2012-03-05 11:41:24 -0800
commit3721e22bf9660e2da83e6b382d2643a76e4300cc (patch)
tree95bc24cfac0d7b63272da5585276a6eecfc59d33 /README.md
parentdae8e9127f49269909a0476a6cc7b76db90ffc2d (diff)
Rename README to README.md
This will cause GitHub to render the Markdown syntax.
Diffstat (limited to 'README.md')
-rw-r--r--README.md104
1 files changed, 104 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..05fa925
--- /dev/null
+++ b/README.md
@@ -0,0 +1,104 @@
+Mosh: the mobile shell
+======================
+
+Mosh is a remote terminal application that supports intermittent
+connectivity, allows roaming, and provides speculative local echo
+and line editing of user keystrokes.
+
+It aims to support the typical interactive uses of SSH, plus:
+
+ * Mosh keeps the session alive if the client goes to sleep and
+ wakes up later, or temporarily loses its Internet connection.
+
+ * Mosh allows the client and server to "roam" and change IP
+ addresses, while keeping the connection alive. Unlike SSH, Mosh
+ can be used while switching between Wi-Fi networks or from Wi-Fi
+ to cellular data to wired Ethernet.
+
+ * The Mosh client runs a predictive model of the server's behavior
+ in the background and tries to guess intelligently how each
+ keystroke will affect the screen state. When it is confident in
+ its predictions, it will show them to the user while waiting for
+ confirmation from the server. Most typing and uses of the left-
+ and right-arrow keys can be echoed immediately.
+
+ As a result, Mosh is usable on high-latency links, e.g. on a
+ cellular data connection or spotty Wi-Fi. In distinction from
+ previous attempts at local echo modes in other protocols, Mosh
+ works properly with full-screen applications such as emacs, vi,
+ alpine, and irssi, and automatically recovers from occasional
+ prediction errors within an RTT. On high-latency links, Mosh
+ underlines its predictions while they are outstanding and removes
+ the underline when they are confirmed by the server.
+
+Mosh does not support X forwarding or the non-interactive uses of SSH,
+including port forwarding.
+
+
+Other features
+--------------
+
+ * Mosh adjusts its frame rate so as not to fill up network queues
+ on slow links, so "Control-C" always works within an RTT to halt
+ a runaway process.
+
+ * Mosh warns the user when it has not heard from the server
+ in a while.
+
+ * Mosh supports lossy links that lose a significant fraction
+ of their packets.
+
+ * Mosh handles some Unicode edge cases better than SSH and existing
+ terminal emulators by themselves, but requires a UTF-8
+ environment to run.
+
+ * Mosh leverages SSH to set up the connection and authenticate
+ users. Mosh does not contain any privileged (root) code.
+
+
+Usage
+-----
+
+ The `mosh-client` binary must be installed on the user's machine, and
+ the `mosh-server` binary on the remote host.
+
+ The user runs:
+
+ $ mosh [user@]host
+
+ If the `mosh-client` or `mosh-server` binaries are installed outside the
+ user's PATH, mosh accepts the arguments `--client=PATH` and
+ `--server=PATH` to select alternate locations.
+
+
+How it works
+------------
+
+ The mosh program will SSH to `user@host` to establish the connection.
+ SSH may prompt the user for a password or use public-key
+ authentication to log in.
+
+ From this point, mosh runs the `mosh-server` process (as the user)
+ on the server machine. The server process listens on a high UDP port
+ and sends its port number and an AES-128 secret key back to the
+ client over SSH. The SSH connection is then shut down and the
+ terminal session begins over UDP.
+
+ If the client changes IP addresses, the server will begin sending
+ to the client on the new IP address within a few seconds.
+
+ To function, Mosh requires high-port UDP datagrams to be passed
+ between client and server. Sites that have these ports firewalled
+ would not be able to use Mosh.
+
+
+More info
+---------
+
+ * Mosh Web site:
+
+ <http://mosh.mit.edu>
+
+ * `mosh-users@mit.edu` mailing list:
+
+ <http://mailman.mit.edu/mailman/listinfo/mosh-users>