10 ms·
Mosh v1.3 Released
- daleroberts 10y agoStill no true color support? :-(
- BillinghamJ 10y agoSeems reasonable given its intended purpose. Why do you particularly want that?
- cyruscm 10y agoConsidering mosh is a wrapper for ssh, it is very unlikely they'll work on 24 bit color
- baobrien 10y agoI don't think mosh is just an SSH wrapper. IIRC, it uses SSH to start a mosh session on the server side, but from there it uses it's own UDP based protocol to sync the terminal 'framebuffer' instead of sending character streams.
- jck 10y agoMosh is not a shower wrapper. They support ssh auth, but that's about it.
- geofft 10y agoHere's the upstream issue: https://github.com/mobile-shell/mosh/issues/649 https://github.com/mobile-shell/mosh/issues/649 Looks like it's a desired feature, but just requires some work (in part around parsing the extended escape sequences correctly).
- chatmasta 10y agoMosh is the best kind of software. It's an indispensable tool that I use every day without even noticing I'm using it because it does its one job very well. I run tmux with nested tmux over a mosh session in a pane for each remote server.
- weitzj 10y agoHow do you handle the nested tmux shortcuts? Just another keybinding?
- cookiecaper 10y agoNot the guy you asked, but for me, nested tmux is usually just pressing the hotkey twice. ^b^b <cmd> for nested and ^b <cmd> for parent.
- jiqiren 10y agoSSH Agent forwarding issue >5years old now. :( https://github.com/mobile-shell/mosh/issues/120 https://github.com/mobile-shell/mosh/issues/120
- emmelaich 10y agoTo be clear a FeatureRequest not a Bug. So I think the age is understandable.
- st3fan 10y agoNo, what it shows is that this project is just in maintance mode. There is plenty to be improved, but there is zero momentum. This is hard for open source projects in general. What it needs is not just a happy user base, but also developers and a strong leader wanting to move this into the future. I think specially the latter is missing. I think Mosh was a great thesis project, but stalled after that. It has so much potential. I wish they would push this to the next level and do proper protocol documentation and an IETF proposal like an RFC.
- tibbetts 10y agoI figure this can go along like screen for a long time. I remember in about 1999 I was really annoyed that screen wasn't getting better fast enough and no one wanted my patches. Then I got used to using screen and it was fine. Now the cool kids use tmux or something and I can't be bothered to change, but I am abstractly glad the world is improving. Similarly I expect someone to clone/replace/improve mosh, and for people who demand the best new functionality to eventually head there.
- jitl 10y agoA patch for SSH Agent forwarding has existed for 4+ years, and there have been several iterations of PRs to merge that into Mosh. The maintainers don't care enough to merge working code for an oft-requested feature. PRs: Most recent: https://github.com/mobile-shell/mosh/pull/696 https://github.com/mobile-shell/mosh/pull/696 Oldest: https://github.com/mobile-shell/mosh/pull/423 https://github.com/mobile-shell/mosh/pull/423 https://github.com/mobile-shell/mosh/pull/583 https://github.com/mobile-shell/mosh/pull/583
- xmichael99 10y agoMosh is great, however, I don't understand why it can't safely failback to regular SSH mode. My point being if the server I am connecting to doesn't have Mosh installed why can't it just warn, and then proceed as a normal SSH session. E.g. if mosh is there you get the benefits of mosh, if its not there well you still got a regular ssh.
- samtregar3 10y agoSounds like a nice idea - maybe offer them a patch?
- nojvek 10y agoTo be honest I find C/C++ quite scary. I would love to get better but I had a very bad taste when I was in school. Now if this was javascript, I'd be all over it.
- deleted 10y ago[deleted]
- apostacy 10y agoI'm sure there are good security reasons. ssh is very conservative about how it is invoked.
- xmichael99 10y agoNo, it is only a terminal. mosh root@192.168.1.10 root@192.168.1.10's password: bash: mosh-server: command not found Connection to 192.168.1.10 closed. /usr/local/bin/mosh: Did not find mosh server startup message. (Have you installed mosh on your server?) I'm pretty sure they could just change it to execute /usr/local/bin/mosh;/bin/bash without much of an issue. As that is all it is, it is a terminal.
- geofft 10y agoMosh already negotiates an ssh connection, so I think you can do this safely - attempt to execute mosh-server, if the execution fails, open a normal shell and proxy the data back to the original screen. You probably don't want mosh to do the proxying, since ssh (the client) is a pretty involved program - it handles signals, it supports port-forwarding, etc. I sort of suspect SSH ControlMaster would work. I could imagine a mosh client script that sets ControlMaster=yes and a random ControlPath, tries to mosh, and runs ssh -o ControlMaster=no if it fails. And then unconditionally does an ssh -o ControlMaster=no -O exit.
- mwcampbell 10y agoThe home page says that web apps like Gmail don't support roaming as mosh does. Why would that be the case? After all, web apps use HTTP requests, which are fundamentally transient (though persistent connections are available as an optimization). Do long polling and WebSockets mess this up?
- revelation 10y agoHTTP uses TCP, which is always terribly slow to establish a connection, often useless with high packet loss. Mosh is UDP, so there is no connection establishment (no need for multiple initial round trips before sending one bit of data) and no indiscriminate retransmission of data. Additionally, you can just continue sending data when your IP changes, connections aren't lost. That typically happens when in a train and you're quickly traversing multiple cells.
- moosingin3space 10y agoA TCP connection is identified by the tuple of (source IP, source port, destination IP, destination port), therefore whenever one side's IP changes (the effect of roaming), the connection has to be re-established. Mosh is built on UDP, where there are no "connections" and the wire protocol is stateless, so when the client IP changes, that endpoint simply transmits some "session cookie" information to the server, which allows it to carry on, uninterrupted. HTTP runs over TCP, so it cannot roam like mosh does. QUIC (Google's experimental HTTP/2, TLS, and UDP integration) is interesting in part for this reason.
- Buge 10y agoMost interactive webapps such as gmail send many HTTP requests. And those requests do not have to be over the same TCP connection. So the webapp could continue to work even if you change IPs. Any requests going at the time of the change would fail, but ideally the javascript of the app would retry them.
- JdeBP 10y agoYou've glossed over the part about TCP connections. Try roaming whilst one of those HTTP transactions is in progress.
- therealmarv 10y agoUsed moshed a lot when I was travelling in the Philippines and done some devops on US servers. It works great and better than ssh (compressed), even with flakky bad connection, high ping to US and 500Kb/s on an island. Tip for getting scrolling back also working: mosh yourserver -- screen Ctrl+a Esc let's you scroll through your screen (with iTerm also with your mouse scroll).
- yebyen 10y agoI would rather have the terminal's native scrolling... is that really impossible with mosh? I know I can use screen but I don't like screen's scrolling behavior.
- geofft 10y agoIt's "impossible" as defined because the advantage of Mosh is it synchronizes your current screen (the visible, 80x25 or whatever part) as if it were frames in a variable-bandwidth video stream. So, if you're behind a very bad connection and you cat a large file, the scrolling all happens server-side, the intermediate frames get dropped, and only the final frame actually gets sent to the client. Meanwhile, in ssh, if you're behind a very bad connection and you cat a large file, your TCP bandwidth gets throttled down, but it still has to send the entire file over the connection, driving performance way down. There is a fork of mosh (https://github.com/4ast/mosh/commits/master https://github.com/4ast/mosh/commits/master , primarily the "use UserStream instead of Terminal" commit) which disables the frame-sync behavior and just uses the byte-stream-sync code (which is used for keyboard data) to sync the raw bytes / ANSI escape codes back to the client. I haven't tried this, but my guess is that you'd be very sad once you accidentally catted a large file, but if you manage to never do that, you'll get mosh-like behavior but also scrollback. I think you could also change the mosh model to involve maintaining scrollback server-side and syncing it (so you'd render and sync a (80+10000)x25 array, not just the last 80 lines), possibly at lower priority than the non-scrollback portion of the screen. I don't know if anyone's tried implementing this. (Personally I just use screen anyway, so this isn't a major pain point for me)
- 10y ago
- st3fan 10y agoMosh would be more widely available, outside of just this 'reference implementation', if it did not use patent encumbered OCB crypto. Phillip Rogaway holds patents relevant to OCB. See the following for his patent grant: http://www.cs.ucdavis.edu/~rogaway/ocb/grant.htm http://www.cs.ucdavis.edu/~rogaway/ocb/grant.htm I think this is the primary reason why there are still no alternative clients. And specifically, no good Mobile clients. The reliance on OCB is unfortunate. I wish the Mosh developers would introduce multiple cipher schemes so that people can move away from OCB. Unfortunately the protocol is also pretty poorly designed, with no easy backward compatible way to do this. For example, when a client starts a session, the server prints "MOSH CONNECT 60001 sdmDrHqo8DBdpKxtAFAUyw" where the last part is the OCB key. It should have been prefixed with the ciper type for extensibility, but it is not. So this would need a backward incompatible redesign to get it going.
- shakna 10y ago> And specifically, no good Mobile clients. I use JuiceSSH [0] on Android, which is based around mosh-client. It works great... What precisely do you mean by the above? [0] https://juicessh.com/ https://juicessh.com/
- jitl 10y agoIs Blink "bad"? It works for me. http://www.blink.sh http://www.blink.sh
- st3fan 10y agoIt is not bad. But it took 5 years.
- brians 10y agoIt is missing the one crucial feature: resuming the last session after a while away!
- goerz 10y agoWhy do you think it's missing it? It has the same persistence as the mosh-client on a deskop. That is, the connection will persist as long as the client process exists. If you are observing anything else, that would justify a bug report on Blink. The one complication is that iOS can sometimes kill background processes at will, which would also kill the mosh-connection. As far as I know, the Blink team is currently working on dealing with this better (issue #59). It shouldn't happen very often, though, and I've certainly had Blink persist in the background for multiple days.
- placeybordeaux 10y agoNo true color :'(
- tombert 10y agoI like Mosh, but it's one of those programs that's "insufficiently better" for me to use, especially since it doesn't implement all the features of ssh.
- fishnchips 10y agoYes and no. I don't use mosh these days, mostly because SSH is perfectly fine for my current use case of occasionally having to log in to a remote server and perform some quick one-off task. When I did on-call shifts for large production systems, often with complex tasks that took a while to complete - that's when the combination of Mosh and tmux on a remote machine came in very handy.
- tombert 10y agoFor that, just running my stuff in tmux is generally sufficient.
- scriptdevil 10y agoI don't know why this isn't plugged more, but on a Windows laptop, I found https://github.com/rpwoodbu/mosh-chrome https://github.com/rpwoodbu/mosh-chrome the best client to connect to remote Linux machines. mosh-chrome+tmux is so good that I got a tonne of my friends who previously used VNCs to switch. You can get as good a screen resolution as you want with all your favorite fonts - I use Fira Code that I couldn't get working in putty.
- simooooo 10y agoThis text based page is not a cool way to do a release
- skrebbel 10y agoIt's not a "text based page", it's a mailinglist archive page. The release was done by sending an email to a list.
- Zarel 10y agoI've been using mosh a lot because I travel a lot so my internet is pretty questionable most of the time. My main issue with it is that it can't clean up after itself. When I log in, I always get multiple messages like "Mosh: You have a detached Mosh session on this server (mosh [25933])." These are because I closed mosh (e.g. restarted my computer) while not connected to the internet. Especially since mosh is made for unreliable internet connections, you'd think it'd be better about this. mosh says it can't automatically deal with these sessions (e.g. by reconnecting) because it's not the same mosh process that opened them, but it's the same computer. It shouldn't be too hard to write the information necessary to reconnect to disk.
- tibbetts 10y agoJust have your mosh server attached to a screen client package (by connecting with "mosh hostname -- screen -rd") and then when you detach that screen client it will terminate the now-useless mosh server. I think that's how most mosh developers do it.
- iso-8859-1 10y agoPlease note that Mosh does still not support IPv6...
- JdeBP 10y agoThat is a slipshod statement that is not true. See https://news.ycombinator.com/item?id=11573487 https://news.ycombinator.com/item?id=11573487 for some more accurate information.