SSH and Mosh on Debian
Introduction
I run Debian Squeeze with OpenSSH, sitting behind Shorewall. I access my systems using OS X’s SSH client. I also use MacPorts.
This simple guide will show you how to quickly get up and running with Mosh.
Installation
Mosh sits between your usual SSH session, setting up a session across UDP. Obviously, we’ll need to set up both the server and the client. Note we don’t actually need to run as a privileged user (though piercing holes through Shorewall, to get it to actually work, is another matter).
Client-side
If you’re using OS X, things are easy. With MacPorts: sudo port install mosh
.
Alternatively, head on over to downloads to grab a binary (OS X 10.5 or later). Once it’s installed, you’re good to go, unless you’re setting up the server-side as well, below.
NOTE The MacPorts version of mosh seems to have a funny quirk, where it complains that IO::Pty can’t be found. Using the OS X (rather than MacPorts) version of Perl is recommended — change
#!/opt/local/bin/perl5.12
to#!/usr/bin/perl
in/opt/local/bin/mosh
and the problem is solved.
Server-side
apt-gpt install libboost-dev libncurses5-dev libprotobuf-dev libutempter-dev protobuf-compiler
This’ll install libboost1.42 development libraries and libicu44, which is a set of libraries to support unicode. As we also need ncurses headers, we’ve added that as well. Finally, apt should correct dependencies so as to also add libprotobuf-lite6 and libprotobuf6 to the list.
If you also wish to allow dpkg to manage your packages (which is what I do), consider also doing the following:
apt-get install dpkg-dev checkinstall
Once that’s done, download and untar, then make sure you’re a normal user (not root), cd into the directory, and do the usual:
wget https://github.com/downloads/keithw/mosh/mosh-1.2.3.tar.gz
tar -zxvf mosh-1.2.3.tar.gz
cd mosh-1.2.3
./autogen.sh
./configure
Good stuff. Now:
make
checkinstall make install
I tend to carry out the checkinstall as a normal user, just so I can review everything before:
dpkg -i mosh_1.2.3-1_amd64.deb
Done! Now, you should be ready to go, unless you’re also using Shorewall, which we’ll have a look at in a second. To SSH using Mosh:
mosh user@example.com
Shorewall config
NOTE 24-Mar-2013 This section has been updated thanks to the help of Zack. Cheers, Zack! :)
Macros are already defined under /usr/share/shorewall
, but new macros should be created in /etc/shorewall
so they are not overwritten upon update.
Copy /usr/share/shorewall/macro.template
to /etc/shorewall/macro.Mosh
and add the following:
PARAM - - udp 60000:61000
Update /etc/shorewall/rules
(obviously your configuration might be different…)
Mosh(ACCEPT) net $FW
Restart, and you’re done. Happy days.