Mosh Roaming remote shell
Light · Postcard
102 × 152 mm · PDF
Dark · Postcard
102 × 152 mm · PDF
Ink saver · Postcard
102 × 152 mm · PDF
Light · A4 landscape
297 × 210 mm · PDF
Dark · A4 landscape
297 × 210 mm · PDF
Ink saver · A4 landscape
297 × 210 mm · PDF
Light · A3 landscape
420 × 297 mm · PDF
Dark · A3 landscape
420 × 297 mm · PDF
Ink saver · A3 landscape
420 × 297 mm · PDF
Start here
mosh <host>
mosh <user>@<host>
mosh --ssh="ssh -p <port>" <host>
mosh -p <port> <host>
mosh <host> -- tmux a
Ctrl+^ .sudo apt install mosh
locale | grep UTF-8
Concepts
- mosh client local
- Login starts mosh-server
- mosh-server your shell
- Session survives IP changes
Connect
mosh <host>
mosh <user>@<host>
mosh <host> -- <command>
mosh --ssh="ssh -p <port>" <host>
mosh --ssh="ssh -i <keyfile>"
<host>
mosh <host> -- tmux new -As <name>
mosh --server=<path> <host>
mosh -4 <host>
mosh -6 <host>
mosh --family=<mode> <host>
mosh --no-ssh-pty <host>
mosh --client=<path> <host>
Ports and firewall
mosh -p <port> <host>
mosh -p <low>:<high> <host>
mosh -p 0 <host>
sudo ufw allow 60000:61000/udp
sudo firewall-cmd --add-port=60000-61000/udp
--permanent
sudo iptables -A INPUT -p udp --dport 60000:61000 -j
ACCEPT
mosh --bind-server=<ssh|any|IP> <host>
mosh --experimental-remote-ip=<mode>
<host>
Escape key
Ctrl+^ .Ctrl+^ Ctrl+Z
Ctrl+^ ^MOSH_ESCAPE_KEY=<char> mosh <host>
Local echo
mosh --predict=adaptive <host>
mosh -a <host>
mosh -n <host>
mosh -o <host>
MOSH_PREDICTION_DISPLAY=<mode>
MOSH_TITLE_NOPREFIX=1
mosh --no-init <host>
Server
sudo apt install mosh
sudo dnf install mosh
sudo pacman -S mosh
brew install mosh
mosh-server --version
localeexport LC_ALL=en_US.UTF-8
pgrep -a mosh-server
pkill -SIGUSR1 mosh-server
export MOSH_SERVER_NETWORK_TMOUT=<seconds>
mosh-server new -p <port>
mosh-server new -c 256
Troubleshooting
mosh-server newmosh --local 127.0.0.1
ss -lunp | grep mosh
| Message | Likely cause |
|---|---|
| Nothing received from server on UDP port | Firewall blocks UDP |
| mosh-server: command not found | Not on remote PATH, use --server |
| needs a UTF-8 native locale | Set LC_ALL on both ends |
| Connection to server lost | Wait, it resumes on its own |
Recipes
# survives laptop sleep and network changesmosh <user>@<host> -- tmux new -As main
sudo ufw allow OpenSSHsudo ufw allow 60000:61000/udpsudo ufw status
# fewer sessions, fewer open portssudo ufw allow 60000:60010/udpmosh -p 60000:60010 <host>
# ~/.ssh/configHost box HostName <host> Port 2222 User <user>mosh --ssh="ssh -p 2222" box



