Mobile shell. Allows you to ssh over slow, intermittent and roaming connections. Currently requires UDP connectivity.
web | feed | project | distribution | documentation | issues | fsd | fresh | oh | wikipedia | GPLv3+
Stable PPA | ppa:keithw/mosh
Ubuntu packages | python-software-properties, mosh
Requires mosh to be installed on both machines (installing the mosh package installs both server and client).
- Most GNU/Linux and other POSIX distros (see http://mosh.mit.edu/#getting)
- Also, Android and Chrome/Chrome OS (TODO: works on Chromium?)
Sending mosh over an ssh chain is not (currently) possible. FIXME: add link
Kill stale sessions with mosh-cleaner
Locale settings must be UTF-8
If after connecting you get an error like this, your locale settings on either client, server or both need to be set.
The locale requested by LANG=en_US.UTF-8 isn't available here. Running `locale-gen en_US.UTF-8' may be necessary. mosh-server needs a UTF-8 native locale to run. Unfortunately, the local environment (LANG=en_US.UTF-8) specifies the character set "US-ASCII", The client-supplied environment (LANG=en_US.UTF-8) specifies the character set "US-ASCII". locale: Cannot set LC_ALL to default locale: No such file or directory LANG=en_US.UTF-8 LANGUAGE=en_US LC_CTYPE="en_US.UTF-8" LC_NUMERIC=en_US.UTF-8 LC_TIME=en_US.UTF-8 LC_COLLATE="en_US.UTF-8" LC_MONETARY=en_US.UTF-8 LC_MESSAGES="en_US.UTF-8" LC_PAPER=en_US.UTF-8 LC_NAME=en_US.UTF-8 LC_ADDRESS=en_US.UTF-8 LC_TELEPHONE=en_US.UTF-8 LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=en_US.UTF-8 LC_ALL= Connection to ********* closed. /usr/bin/mosh: Did not find mosh server startup message.
- Run locale-gen en_US.UTF-8 on both client and server.
- Note, on Debian you need to run this as sudo and the parameter seems to be ignored (all locales are rebuilt).
- Ideally, set LC_ALL (and any other missing values) correctly on the client (to match your existing locale) and install that locale on the server.
- Run locale on both client and server and compare locale settings.
- Alternatively, if the en_US.UTF-8 locale is "good enough", and it is available on the server, and LC_ALL is blank on the client, set LC_ALL on the client to en_US.UTF-8.
- bash: add this to .profile (FIXME: or somewhere else?)
- fish: set -x LC_ALL "en_US.UTF-8"
Another option (untested): sudo apt install locales locales-all
- TODO: find a reference to Debian/Ubuntu locale tools https://wiki.debian.org/Locale