So while this isn’t technically about mosh I think we can all agree that the roaming functionality is why most people prefer it, recently I’ve been using WireGuard every chance I get and because it does routing based on keys I’ve been getting a lesser version of the roaming functionality. Essentially if I swap networks or walk across town and plug back in as long as my TCP session hasn’t timed up everything I’m doing recovers. It also makes certain network activities a bit more fault tolerant.
Really these are just both sort of hacks to deal with sessions. When I was looking into this sort of behavior more and at the same time djb’s crypto suites I ran into CurveCP. Once I was up and rolling all my interactions over CurveCP had inherited the stateless connection behavior and strong crypto. It was pretty neat and I’m really sad it hasn’t got more traction.
I used to work at a company with datacenters around the world, and when I had to do something on a remote computer, mosh was awesome and frustrating.
Awesome, because of the latency prediction: getting feedback while typing, even if it turns out to be wrong, is vastly nicer than having to wait a few hundred millis for the “correct” response.
Frustrating, because mosh’s fancy UDP transport generally only works over the open Internet; if the service you want to talk to is on the other side of one or more restrictive firewalls, there’s very little chance it will work.
I wish the predictive-input part of mosh were available separately, so I could run it over a regular SSH session. (and as a side-effect, that should fix mosh’s problems with agent-forwarding, X11 forwarding, port-forwarding, etc.)
I’d love to use mosh but the scrolling is a serious issue (I don’t like to use screen or tmux). Using ssh is not too much of a bother to switch over to mosh, the reauthentication after suspension is rare enough that I, personally, can live with it. I am kind of stuck with ssh and don’t want to bother with learning a new work flow.