Mosh - Mobile SHell

Címkék

Keith Winstein vezetésével Anders Kaseorg, Quentin Smith, Richard Tibbetts és Keegan McAllister úgy gondolta, hogy a folyamatosan változó, átalakuló interneten - ahol a latency egyre nő, új mumusként bukkan fel a bufferbloat (1, 2, 3, 4, 5) és ahol a roaming gyakoribb mint valaha -, az SSH-nál kifinomultabb megoldásra van szükség. Az általuk kínált megoldás a Mosh, vagy hosszabb nevén a Mobile SHell.

A Mosh kutatási dokumentumait a 2012 USENIX Annual Technical Conference rendezvényen mutatják be június közepén Bostonban.

A fejlesztők szerint a Mosh robusztusabb és reszponzívabb az SSH-nál, kiváltképp WiFi, mobil és nagy távolságú hálózati kapcsolatokon.

Előnyei:

  • nyugodtan válthatsz IP-t, kapcsolatban maradsz
  • hibernálhatod, altathatod a géped, majd egy későbbi időpontban felélesztheted, nem probléma, a kapcsolat helyreáll, ha a hálózat visszatér
  • a hálózati késedelem (lag) kiküszöbölve
  • nincs szükség különleges jogokra ahhoz, hogy a Most-t futtasd; futtathatod a klienset és a szervert mezei felhasználóként is
  • ugyanazt a login metódust használhatod; a Mosh nem figyel hálózati portokon és nem hitelesít felhasználókat; a Mosh kliens SSH-n keresztül jelentkezik be a szerverre, így használhatók a korábban megszokott azonosítási metódusok (jelszó, publikus kulcs)
  • a Mosh kiválóan fut xterm, gnome-terminal, urxvt, Terminal.app, iTerm, emacs, screen, tmux stb. alkamazásokban; viszont csak egy karakterkészletet használ: UTF-8-at; ezzel megszűnik minden SSH alatt előforduló UTF-8 probléma
  • kiválóan működik a Control-C; az SSH-val ellenétben a Mosh UDP-t használ, így a csomagveszteségeket kiválóan lekezeli

A Mosh szabad szoftver, terjeszteni a GPLv3 (vagy újabb) feltételei szerint lehet. Elérhető Linux-ra, FreeBSD-re és OS X-re.

Részletek a projekt weboldalán.

Hozzászólások

Portforwardokat vajon tudhat, mint az SSH, vagy ahhoz külön SSH session-t kell inditsunk?

--
"A herceg én vagyok."

Ami termékkel most épp dolgozom, az úgy néz ki, hogy jópár VM, előttük egy LoadBalancer, az fogadja a kapcsolatokat, NATol, elosztja a kapcsolatokat amit kell, kitalálja mi hova menjen.
Az egész szutykot irányító komponens egészen kulcsfontosságú, ezért duplázva van. Mivel a legtöbb adminisztrációs jellegű dolgot ezeken végzed, ide van irányítva a bejövő ssh.
Ha nem akarsz egy épp lekapcsolt komponens ajtaján dörömbölni akkor jó ha az ssh is "loadbalance"-olva van tehát ha legalább az egyik él akkor lesz vége a kapcsolatodnak.

--
"A herceg én vagyok."

Ismerős a probléma, én pl úgy oldottam emg az egészet, hogy az első shortcut kihúz egy ssh-t valamelyik vezérlőre, benne egy socks proxyval, majd az összes gépet azon keresztül tunnelezve közvetlen a nevén megszólítva érem el.
Igazából az eredeti kérdéshez képest ez tök irreleváns. Avagy vannak olyan helyzetek amikor az ssh egy-egy NAT, LB vagy egyéb varázsláson keresztül mennek. Függetlenül ennek az értelmétől (minden nagy cégnél megfordult ember tudja hogy a rendszereket nem azok tervezik+csinálják akik használni is fogják, igy mindig lesznek "furcsa" dolgok).
A kérdés/kötekedés arra vonatkozott, hogy az ilyen esetekben ezt a gyönyörű új mosh-t vajon hogy húzzuk át ilyen jellegű kapcsolatokon.

--
"A herceg én vagyok."

Ohh, persze, en ertettem a kerdes ezen iranyat. Engem pusztan a szakmai kivancsisag vezetett, mert el nem tudom kepzelni, hogy az SSH-t mint olyat LB-n keresztul vezessem. A NAT az persze mas, de az LB... aztan ki tudja hol landolok... :S. No persze en az SSH-t csak adminolasra hasznalom...
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal 

"SSH-val ellenétben a Mosh UDP-t használ, így a csomagveszteségeket kiválóan lekezeli"
He? Remélem nem találták fel újra a TCP-t, mert akkor tökön bököm magamat...

szerk: belenéztem a doksiba... végülis érdekes megoldás, de a spekuláció szerintem bizonyos esetekben rosszabb lehet mint a késés, mert amit a kliensen látsz az nem ugyanaz mint ami a szerveren történik. Így simán lehet, hogy elfogadsz egy parancsot a kliensen, de a szerver igazából nem azt fogja csinálni.

"a hálózati késedelem (lag) kiküszöbölve"

Umm, ez szerintem nem olyasmi, amit ki lehetne küszöbölni. Azért csak kell ahhoz idő, hogy az elektronok vagy fotonok átbandukoljanak az egyik helyről a másikra...

ssh user@host 'nc -l -up 60000 | sh | nc -up 60000'

--------------------------------------
Unix isn't dead. It just smells funny.

Nem hiszem, hogy ezzel a hozzászólással vetettem véget a hup X éves hülyeségmentességének.

Aki komolyan vette, attól elnézést kérnék, de valószínűleg megérdemli.

Szerk: Komolyra fordítva. Az SSH egy szörnnyé nőtt, megérett a leváltásra. UTF-8 nagyon helyes. Biztos az UDP is. Ahhoz nem értek.
De ez a tízezer sor c++ nekem picit soknak tűnik. Erre próbáltam rávilágítani. Hogy amit írtam azzal nagyon sok baj van, az tiszta,
de ennyi kódba is befér ennyi meglepetés.

--------------------------------------
Unix isn't dead. It just smells funny.

Mint a legtöbb software-rel manapság. Ha valamit lehet
többféleképpen, akkor abból egyszerre az összeset
választják. Amitől nagy lesz és komplex. És mint tudjuk a
komplexitás fordítva arányos a biztonsággal. Ami pont a feladata
lenne.

--------------------------------------
Unix isn't dead. It just smells funny.

Picit túllihegitek, amit mondok. OpenBSD kódok hálistennek nagyon jó minőségűek. Leginkább annyi a baj, hogy az összes elképzelhető féle auth-ot és encrypt-et használja, és egyikből sincs egy default, amit garantáltan mindkét gép tud. Nem elég egységes. Nem lehet egyszerűen beállítani / tesztelni mindent. Túl sok mindentől függ.

--------------------------------------
Unix isn't dead. It just smells funny.

Hat, eddig meg nem volt olyan, hogy ne sikerult volna ket gepnek osszefutyulnie ssh-n. Kb. ez az egyetlen protokoll, ami mindig minden korulmenyek kozott mukodni.
Beallitani... mit ertesz ez alatt? Az sshd_config viszonylag reszletesen konifgolhato, cipherek is allithatoak benne asszem, szoval tenyleg nem ertem, mi az ami hianyzik.
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal 

MIT projekt és nem MIT licenc alatt van kiadva, érdekes...

nocsak, újra feltalálták a screen-t?

Vicc, hogy a boost lib-bol csak a Lambda-t es a Typeof-t hasznalja. Nem hiszem el, hogy ezek olyan funkciok amiert megerne hasznalni a boost-ot. Tipikus linux-os open source project.

Miért nincs itt egy like gomb?

Valaki osszefoglalna egy mondatba, hogy ez most miert is jo, es az SSH miert rossz? A limitaciokkal tisztaban vagyok, de nyilvan ennek is vannak, csak masmilyenek.
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal