Mosh - Mobile SHell

 ( trey | 2012. április 10., kedd - 13:36 )

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ás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

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

--
"A herceg én vagyok."

"Mosh will log the user in via SSH, then start a connection on a UDP port between 60000 and 61000."

Kész öröm lesz tűzfalazni, LoadBalancereken átfűzni :)

--
"A herceg én vagyok."

Oooo, egy alapvetoen adminisztrativ jellegu tortenetet miert akarsz load balancolni? Tenyleg erdekelne.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal

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."

Es mi van, ha en explicite a 2. szamu VM-re akarok belepni? Mert mondjuk en vagyok a rendszergarazda, es eppen patchelni kene a gepeket. Egyesevel.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal

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...

Aztán lehet, hogy nem és végre tudunk majd üzeneteket küldeni a múltba. :)

A fonton sajat ideje szerint nincs szuksege ehhez idore, illetve ilyen fogalma sincs igazabol. Igaz, ez rajtunk kevesbe segit :)

Pontosabban vákuumban nincs saját ideje.
De bármilyen más közegben (pl. üvegben) már van neki (hiszen ott már nem c-vel terjed).

Tévedés. A foton, amikor foton, akkor c -vel terjed. Az más kérdés, hogy közegben folyamatosan elnyelődik (elektront magasabb pályára lökve), és kibocsájtódik (elektront kisebb energiájú pályán hagyva), ezért effektíve úgy lassabban halad.

A fénytörés oka az, hogy a két közegben eltérő a fény terjedési sebessége.

Olvasd el mégegyszer amit írt!

Nincs túl jó viszhangja a projektnek, többekközött nálam sem akar működni.
--
HUPbeszolas FF extension

Tihanyban próbáltad már?

:-)))) Ez durva.

Touché

# apt-get install
# mosh-server
# mosh

root@mosh-test:~#

Minden probléma nélkül.

--
deejayy DOT hu

Húúha, milyen okos valaki.

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

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

Kérlek ne írj hülyeségeket, mert ha valaki átfutja a cikket megtévesztheti...

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.

"nagyon helyes. Biztos az UDP is."

A jelek szerint nem annyira.

Na jah... az osszes ilyen probalkozasbol az lesz, hogy ujra feltalaljak a TCP-t es rosszul implementaljak. A spekulaciot es a gyors reakciot is meg lehetett volna csinalni TCP-vel, csak az nem lett volna olyan meno... jah meg az mukodne :)

"Az SSH egy szörnnyé nőtt, megérett a leváltásra."

Mi baj az ssh-val?

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.

Ezt ki tudnad fejteni bovebben, akar egy kulon blogbejegyzes keretein belul is? Szerintem sokakat erdekelne egy komoly cikk ebben a temaban.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal

Csatlakozom. Én nem használom (nem is ismerem) az ssh összes featúráját, de amit használok azok közül akár egy is nagyon hiányozna, ha nem lenne támogatva. Úgyhogy kíváncsi vagyok mi számít feleslegesnek :)

"És mint tudjuk a komplexitás fordítva arányos a biztonsággal."

Akkor elo az openssh 0dayekkel!

--
"You're NOT paranoid, we really are out to get you!"

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...

MIT lehet erre mondani...?

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.

Küldj egy peccs -t, akkor még tipikusabb. Amúgy ez mitől Linuxos projekt?

--
http://neurogadget.com/

Szerintem arra gondolt, hogy ez olyan mint a tipikus linuxos os projektek, nem arra, hogy ez az :)

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

Az a lényege, hogy ha lenyomsz egy billentyűt, nem fél másodperc múlva fog visszaechozódni, hanem hamarabb. :P


tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Kiveve ha eppen nem mukodik a spekulacio. Akkor meg rosszabb is. Ha meg mukodik a spekulacio, akkor ha melle lo akkor fel masodpercig hibas adatot latsz a kepernyon es entert nyomsz valami masra. Jo az.