Mosh: Difference between revisions

From ICO wiki
Jump to navigationJump to search
No edit summary
No edit summary
 
(20 intermediate revisions by the same user not shown)
Line 1: Line 1:
<div align="justify">
<div align="justify">
'''Mosh''' ''(Mobile Shell)'' on kaugterminal, mille abil on Interneti vahendusel võimalik turvaliselt kliendi arvutist serverisse ühendust võtta. Ta on väga sarnane [[Ssh|SSH]]-le, lausa nõuab selle olemasolu, ent tal on lisaomadusi, millega on eriti silmas peetud mobiilset kasutajaskonda. Mosh annab vahetut tagasisidet, võimaldab võrgurändlust ning töötab ka katkeva ühenduse puhul. Ühenduse loomiseks kasutab Mosh vaikimisi esimest vaba UDP porti vahemikus 60000--61000.
'''Mosh''' ''(Mobile Shell)'' on kaugterminal, mille abil on Interneti vahendusel võimalik turvaliselt kliendi arvutist serverisse ühendust võtta. Ta on väga sarnane [[Ssh|SSH]]-le, lausa nõuab selle olemasolu, ent tal on lisaomadusi, millega on eriti silmas peetud mobiilset kasutajaskonda. Mosh annab vahetut tagasisidet, võimaldab võrgurändlust ning töötab ka katkeva ühenduse puhul.<ref name="mosh">[https://mosh.org/ mosh.org]</ref> Ühenduse loomiseks kasutab Mosh vaikimisi esimest vaba UDP porti vahemikus 60000--61000.<ref name="mosh-usage">[https://mosh.org/#usage mosh.org - Usage]</ref>


Mosh-i esimene versioon (Mosh 1.0) lasti välja märtsis 2012. Praegune kõige värskem Moshi versioon tuli välja augustis 2016 (Mosh 1.2.6).  
Moshi esimene versioon (Mosh 1.0) lasti välja märtsis 2012. Praegune kõige värskem Moshi versioon tuli välja augustis 2016 (Mosh 1.2.6).<ref>[https://mosh.org/#news mosh.org - News]</ref>


==Lisaomadused==
==Lisaomadused<ref name="mosh"/>==  
====Vahetu tagasiside====
====Vahetu tagasiside====
Kui [[Ssh|SSH]] puhul on vaja enne teksti ekraanile kuvamist ära oodata serveri vastus, siis Moshis kuvatakse teksti sisestamine, kustutamine või ridade muutmine koheselt. See toimib tänu Moshi võimele kasutaja tekstisisestusi ette ennustada. Ennustatud tekst, mis pole veel serverilt vastust saanud, kuvatakse allajoonitult (Joonis 1). Pärast serverilt kinnituse saamist jooned eemaldatakse.
Kui [[Ssh|SSH]] puhul on vaja enne teksti ekraanile kuvamist ära oodata serveri vastus, siis Moshis kuvatakse teksti sisestamine, kustutamine või ridade muutmine koheselt. See toimib tänu Moshi võimele kasutaja tekstisisestusi ette ennustada.<ref name="mosh-technical">[https://mosh.org/#techinfo mosh.org - Technical Info]</ref> Ennustatud tekst, mis pole veel serverilt vastust saanud, kuvatakse allajoonitult (Joonis 1). Pärast serverilt kinnituse saamist jooned eemaldatakse.
[[File:Mosh-lost-connection.PNG|thumb|x100px|none|Joonis 1. Ühendus katkes pärast "ifc" kirjutamist.]]
[[File:Mosh-lost-connection.PNG|thumb|x100px|none|Joonis 1. Ühendus katkes pärast "ifc" kirjutamist.]]


====Automaatne võrgurändlus====
====Automaatne võrgurändlus====
Kui võrguühendus peaks katkema, annab Mosh sellest staatuseribal koheselt teada, näidates viimasest õnnestunud ühendusest möödunud aega (Joonis 1). Kui võrguühendus taastatakse, sünkroniseerib Mosh automaatselt ning kasutajal on võimalik jätkata punktist, kus ta tegevus eelnevalt pooleli jäi ilma, et programmi oleks vaja taaskäivitada. Sama kehtib ka näiteks arvuti puhkerežiimist äratamisel, kui Mosh eelnevalt töötas.
Kui võrguühendus peaks katkema, annab Mosh sellest staatuseribal koheselt teada, näidates viimasest õnnestunud ühendusest möödunud aega (Joonis 1). Kui võrguühendus taastatakse, sünkroniseerib Mosh automaatselt ning kasutajal on võimalik jätkata punktist, kus ta tegevus eelnevalt pooleli jäi ilma, et programmi oleks vaja taaskäivitada. Sama kehtib ka näiteks arvuti puhkerežiimist äratamisel, kui Mosh eelnevalt töötas.  


Lisaks suudab Mosh tööd jätkata ka olukordades, kus kliendi IP muutub, näiteks vahetades ühendust WIFI võrgust mobiilsele internetile. Selleks on kasutusel ''State-Synchronization Protocol (SSP)''. Võrkude vahetamine ja ühenduse taastamine toimib kliendi jaoks nähtamatult ehk ei eelda kasutaja tegevust. Paketikadu ei teki.
Lisaks suudab Mosh tööd jätkata ka olukordades, kus kliendi IP muutub, näiteks vahetades ühendust WIFI võrgust mobiilsele internetile. Selleks on kasutusel ''State-Synchronization Protocol (SSP)''. Võrkude vahetamine ja ühenduse taastamine toimib kliendi jaoks nähtamatult ehk ei eelda kasutaja tegevust. Paketikadu ei teki. <ref name="mosh-technical"/>


====UTF-8 tugi====
====UTF-8 tugi====
Moshi loomisel keskenduti ainult ühele kodeeringule – UTF-8 – mis on ka ainuke toetatud kodeering Moshis. Tänu viimistletud UTF-8 kodeeringule, parandab Mosh mitmed Unixi puugid juba olemasolevates terminalides ning SSH-s. Moshis on võimalik probleemideta kuvada ka hieroglüüfe [https://mosh.org/#techinfo].
Moshi loomisel keskenduti ainult ühele kodeeringule – UTF-8 – mis on ka ainuke toetatud kodeering Moshis. Tänu viimistletud UTF-8 kodeeringule, parandab Mosh mitmed Unixi puugid juba olemasolevates terminalides ning SSH-s. Moshis on võimalik probleemideta kuvada ka hieroglüüfe.<ref name="mosh-technical"/>


==Puudused==
==Puudused==
====Nõudmised serverile====
====Nõudmised serverile====
Kui SSH on reeglina serveritel juba paidaldatud, siis Moshi kasutamiseks tuleb see lisapaketina paigaldada. Enamustel serveritel pole administraatorid seda teinud ja vähene levik on ka Moshi tõenäoliselt suurim puudus. Lisaks tuleb Mosh-i kasutades tähelepanu pöörata, et tulemüür oleks vastavalt seadisutatud UDP ühendusi lubama.
Kui SSH on reeglina serveritel juba paidaldatud, siis Moshi kasutamiseks tuleb see paigaldada lisapaketina.<ref name="mosh-usage"/> Suurem osa administraatoritest reeglina seda ei tee. Lisaks tuleb Moshi kasutades tähelepanu pöörata sellele, et tulemüür oleks seadistatud vastavaid UDP ühendusi lubama.<ref name="mosh-faq">[https://mosh.org/#faq mosh.org - Frequently Asked Questions]</ref>


====IPv6 rändlus====
====IPv6 rändlus====
Mosh toetab küll IPv6 protokolli, kuid IPv6 ühenduse puhul ei toimi automaatne võrgurändlus.
Mosh toetab küll IPv6 protokolli, kuid IPv6 ühenduse puhul ei toimi automaatne võrgurändlus.<ref>[http://mailman.mit.edu/pipermail/mosh-users/2015-July/000283.html mailman.mit.edu - [mosh-users] mosh 1.2.5 released]</ref>


====Terminali kerimine====
====Terminali kerimine====
Hetkel uusim Mosh-i verisoon ei toeta väljundipuhvri kerimist. See tähendab, et pikema väljundi puhul pole võimalik ülespoole kerida, kui esimesed read aknasse ei mahtunud. Küll aga saab probleemist mööda, kui kasutada virtuaalseid terminale screen või tmux abil. Lisaks on arendajatel plaanis puudus kõrvaldada Mosh-i tulevates versioonides.
Hetkel uusim Moshi verisoon ei toeta väljundipuhvri kerimist. See tähendab, et pikema väljundi puhul pole võimalik ülespoole kerida, kui esimesed read aknasse ei mahtunud. Küll aga saab probleemist mööda, kui kasutada virtuaalsete terminalide screen või [[Tmux|tmux]] abi. Lisaks on arendajatel plaanis puudus kõrvaldada Moshi tulevates versioonides. <ref>[https://github.com/mobile-shell/mosh/issues/2 Github - mobile-shell/mosh: Scrollback and alternate screen]</ref>


====X11====
====X11====
Mosh ei võimalda kliendi arvutisse üle tuua graafilisi rakendusi serverilt X-i suunamise abil, nagu suudab seda SSH.
Mosh ei võimalda kliendi arvutisse üle tuua graafilisi rakendusi serverilt X-i suunamise abil, nagu suudab seda [[Ssh#Xi_akende_edastus|SSH]].<ref>[https://github.com/mobile-shell/mosh/issues/41 Github - mobile-shell/mosh: Support X forwarding]</ref>


==Turvalisus==
==Turvalisus<ref name="mosh-faq"/>==
Mosh kasutab serverisse sisselogimisel autentimiseks [[Ssh|SSH]]-d, pärast mida käivitatakse kasutaja jaoks nähtamatult <code>[http://manpages.ubuntu.com/manpages/precise/man1/mosh-server.1.html mosh-server]</code>, suletakse SSH ühendus ning käivitatakse <code>[http://manpages.ubuntu.com/manpages/wily/man1/mosh-client.1.html mosh-client]</code>. Kuna Mosh on loodud SSH baasil, omandab ta ka selle turvalisuse.
Mosh kasutab serverisse sisselogimisel autentimiseks [[Ssh|SSH]]-d, pärast mida käivitatakse kasutaja jaoks nähtamatult <code>mosh-server<ref name="mosh-server">[http://manpages.ubuntu.com/manpages/precise/man1/mosh-server.1.html Ubuntu manuals - mosh-server]</ref></code>, suletakse SSH ühendus ning käivitatakse <code>mosh-client<ref name="mosh-client">[http://manpages.ubuntu.com/manpages/wily/man1/mosh-client.1.html Ubuntu manuals - mosh-client]</ref></code>. Kuna Mosh on loodud SSH baasil, omandab ta ka selle turvalisuse.


Mõneti on Mosh veelgi turvalisem kui SSH [https://mosh.org/#faq]. SSH toetub turvalise andmevoo kandmisel autentimata edastusohje protokollile (''Transmission Control Protocol'' ehk TCP). See tähendab, et ründaja võib sulgeda SSH ühenduse ka andmete krüpteeringut murdmata, sest tal on võimalik välja saata võltssegmente, mis näivad autentsed. Mosh seevastu kontrollib igat datagrammi, mistõttu ei saa ründaja Moshi sessiooni katkestada, kui ta just ei suuda pikema aja jooksul pakettide vahetamist takistada. Lühiajalise ründe korral tekitatakse kasutajale vaid näiline katkestus. Ründe lõppedes Moshi sessioon jätkub.  
Mõneti on Mosh veelgi turvalisem kui SSH. SSH toetub turvalise andmevoo kandmisel autentimata edastusohje protokollile (''Transmission Control Protocol'' ehk TCP). See tähendab, et ründaja võib sulgeda SSH ühenduse ka andmete krüpteeringut murdmata, sest tal on võimalik välja saata võltssegmente, mis näivad autentsed. Mosh seevastu kontrollib igat datagrammi, mistõttu ei saa ründaja Moshi sessiooni katkestada, kui ta just ei suuda pikema aja jooksul pakettide vahetamist takistada. Lühiajalise ründe korral tekitatakse kasutajale vaid näiline katkestus. Ründe lõppedes Moshi sessioon jätkub.  


Viimase nelja aasta jooksul pole Moshil ühtegi turvaauku raporteeritud [https://mosh.org/#faq].  
Viimase nelja aasta jooksul pole Moshil ühtegi turvaauku raporteeritud.


==Moshi kasutamine==
==Moshi kasutamine==
Vajadusel saab Moshi paigaldada ja kasutada ka ilma ülikasutaja ''(superuser)'' õigusi omamata [https://gist.github.com/xiaom/8264691], ent süsteemiüleseks paigaldamiseks on vastavad õigused vajalikud.
Vajadusel saab Moshi paigaldada ja kasutada ka ilma ülikasutaja ''(superuser)'' õigusi omamata,<ref>[https://gist.github.com/xiaom/8264691 Github - install_mosh_locally.sh]</ref> ent süsteemiüleseks paigaldamiseks on vastavad õigused vajalikud.


===Paigaldamine===
===Paigaldamine===
Moshi kasutamiseks peab see olema paigaldatud nii klient- kui serverjaamal. Mosh on saadaval järgnevatel platvormidel: Linuxi erinevad versioonid, Mac OS X, Android, Solaris, Cygwin, BSD. Lisaks sellele on Mosh olemas ka Chrome rakendusena, mida kasutatakse näiteks Windows operatsioonisüsteemi puhul.   
Moshi kasutamiseks peab see olema paigaldatud nii klient- kui serverjaamal.<ref name="mosh-getting">[https://mosh.org/#getting mosh.org - Getting Mosh]</ref> Mosh on saadaval järgnevatel platvormidel: Linuxi erinevad versioonid, Mac OS X, Android, Solaris, Cygwin, BSD. Lisaks sellele on Mosh olemas ka Chrome rakendusena, mida kasutatakse näiteks Windows operatsioonisüsteemi puhul.   


{| class="wikitable"
{| class="wikitable"
|-
|-
! Operatsioonisüsteem
! Operatsioonisüsteem
! Paigaldamiskäsk [https://mosh.org/#getting]
! Paigaldamiskäsk<ref name="mosh-getting"/>
|-
|-
| Homebrew ''(OS X 10.5 or later)''
| Homebrew ''(OS X 10.5 or later)''
Line 93: Line 93:
===Ühenduse loomine===
===Ühenduse loomine===
=====Windows=====
=====Windows=====
Populaarne SSH kliend Windowsil, PuTTY, ei sobi Mosh-i kasutamiseks.
Populaarne SSH klient Windowsil, PuTTY, ei sobi Moshi kasutamiseks, kuna sel puudub vastav tugi. Tänu mitmele praktilisele probleemile ei ole tõenäoline, et Moshi tugi PuTTY-sse luuakse,<ref>[http://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/mosh.html chiark.greenend.org.uk - PuTTY wish mosh]</ref> seega tuleb kasutada muid alternatiive.  
Kõige lihtsama moodusena saab Windowsi peal Moshi kasutada läbi Google Chrome'i laienduse, mida on võimalik alla laadida Chrome'i veebipoest [https://chrome.google.com/webstore/detail/mosh/ooiklbnjmhbcgemelgfhaeaocllobloj]. Pärast rakenduse avamist tuleb loodava ühenduse parameetrid seadistada (Joonis 2). Nii ''Username'' kui ka ''Hostname'' on ühenduse loomiseks vajalikud.
 
Kõige lihtsama moodusena saab Windowsi peal Moshi kasutada läbi Google Chrome'i laienduse, mida on võimalik alla laadida Chrome'i veebipoest.<ref>[https://chrome.google.com/webstore/detail/mosh/ooiklbnjmhbcgemelgfhaeaocllobloj Chrome Web Store - Mosh]</ref> Pärast rakenduse avamist tuleb loodava ühenduse parameetrid seadistada (Joonis 2). Nii ''Username'' kui ka ''Hostname'' on ühenduse loomiseks vajalikud.
[[File:Mosh-chrome-plugin.PNG|thumb|x252px|none|Joonis 2. Sessiooni loomine Chrome'i abil.]]
[[File:Mosh-chrome-plugin.PNG|thumb|x252px|none|Joonis 2. Sessiooni loomine Chrome'i abil.]]
Moshi kasutamisel läbi Chrome'i peab arvestama, et üks ''Mosh server command'''i parameetritest – kasutuskoht ''(locale)'' – on vaikimisi seatud en_US.UTF-8 peale [https://github.com/rpwoodbu/mosh-chrome/blob/master/mosh_nacl/ssh_login.cc#L44]:
Moshi kasutamisel läbi Chrome'i peab arvestama, et üks ''Mosh server command'''i parameetritest – kasutuskoht ''(locale)'' – on vaikimisi seatud en_US.UTF-8 peale:<ref>[https://github.com/rpwoodbu/mosh-chrome/blob/master/mosh_nacl/ssh_login.cc#L44 Github - mosh-chrome/mosh_nacl/ssh_login.cc]</ref>
<pre> mosh-server new -s -c 256 -l LANG=en_US.UTF-8</pre>  
<pre> mosh-server new -s -c 256 -l LANG=en_US.UTF-8</pre>  
Kui arvutis, kuhu ühendust võetakse, Moshis seadistatud kasutuskoht puudub, ei saa Moshi kasutada. Seetõttu tuleb kasutuskohta vajadusel muuta. Eesti kasutuskoha puhul peaks ''Mosh server command'' olema järgmine:
Kui arvutis, kuhu ühendust võetakse, Moshis seadistatud kasutuskoht puudub, ei saa Moshi kasutada. Seetõttu tuleb kasutuskohta vajadusel muuta. Eesti kasutuskoha puhul peaks ''Mosh server command'' olema järgmine:
Line 102: Line 103:


=====Android=====
=====Android=====
Androididel saab Moshi kasutada läbi JuiceSSH. Nii nagu Chrome'i puhul, on ka JuiceSSH-s kasutuskoht vaikimisi en_US.UTF-8. Joonisel 3 on näidatud JuiceSSH seadistus eesti kasutuskoha puhul.  
Androididel saab Moshi kasutada läbi JuiceSSH.<ref name="mosh-getting"/> Nii nagu Chrome'i puhul, on ka JuiceSSH-s kasutuskoht vaikimisi en_US.UTF-8. Joonisel 3 on näidatud JuiceSSH seadistus eesti kasutuskoha puhul.  
[[File:Mosh-JuiceSSH.png|thumb|x275px|none|Joonis 3. Kasutuskoha muutmine JuiceSSH's.]]
[[File:Mosh-JuiceSSH.png|thumb|x275px|none|Joonis 3. Kasutuskoha muutmine JuiceSSH's.]]


=====Linux=====
=====Linux<ref name="mosh-usage"/>=====
Linuxil (ja mitmel teisel operatsioonisüsteemil) saab Moshiga ühenduse luua sarnaselt [[Ssh|SSH]]-le [https://mosh.org/#usage]:
Linuxil (ja mitmel teisel operatsioonisüsteemil) saab Moshiga ühenduse luua sarnaselt [[Ssh|SSH]]-le:
<pre>$ mosh username@hostname</pre>
<pre>$ mosh username@hostname</pre>
Kui sama kasutajanimega ollakse juba terminali sisse logitud, pole tarvis enam kasutajanime välja kirjutada. Seega piisab käsust:
Kui sama kasutajanimega ollakse juba terminali sisse logitud, pole tarvis enam kasutajanime välja kirjutada. Seega piisab käsust:
<pre>$ mosh hostname</pre>
<pre>$ mosh hostname</pre>
Mosh-i on võimalik kasutada ka severil seda süsteemiüleselt mitte installeerides. Kui <code>mosh-server</code> ei asu mõnes kasutas, mis on defineeritud <code>$PATH</code> muutuja poolt, tuleb programmi asukoht täpsustada:
Moshi on võimalik kasutada ka severil seda süsteemiüleselt mitte paigaldades. Kui <code>mosh-server</code> ei asu mõnes kaustas, mis on kaasatud <code>$PATH</code> muutujasse, tuleb programmi asukoht täpsustada:
<pre>$ mosh --server=/tmp/mosh-server hostname</pre>
<pre>$ mosh --server=/tmp/mosh-server hostname</pre>
Vaikimisi otsib Mosh esimese vaba UDP pordi vahemikus 60000 ja 61000. Et suunata Mosh kasutaja valitud UDP pordile, tuleb see täpsustada:
Vaikimisi otsib Mosh esimese vaba UDP pordi vahemikus 60000 ja 61000. Et suunata Mosh kasutaja valitud UDP pordile, tuleb see täpsustada (nt 10000):  
<pre>mosh -p 10000 hostname</pre>
<pre>mosh -p 10000 hostname</pre>
Kuna algse ühenduse loomiseks kasutatakse SSH-d, siis võib olla vaja täpsustada erinevaid <code>ssh</code> käsu parameetreid. Seda saab teha <code>--ssh</code> võtme abil:
Kuna algse ühenduse loomiseks kasutatakse SSH-d, siis võib olla vaja täpsustada erinevaid <code>ssh</code> käsu parameetreid. Seda saab teha <code>--ssh</code> võtme abil:
<pre>mosh --ssh="~/bin/ssh -i ./identity" hostname</pre>
<pre>mosh --ssh="~/bin/ssh -p 2222 -i ./identity" hostname</pre>
Kui kasutaja soovib vahetu tagasiside keelata, tuleb selleks Mosh-i käivitamisel lisada võti <code>-n</code>:
Kui kasutaja soovib vahetu tagasiside keelata, tuleb selleks Moshi käivitamisel lisada võti <code>-n</code>:
<pre>mosh -n hostname</pre>
<pre>mosh -n hostname</pre>


===Ühenduse sulgemine===
===Ühenduse sulgemine===
Ühenduse saab sulgeda, nagu SSH-ki puhul, kasutades käske <code>exit</code> või <code>logout</code>. Toimib ka tühjal real <code>^D</code> saatmine ehk <code>Ctrl+D</code> vajutamine. Mosh-i ühenduse jõuliseks lõpetamiseks on klahvikombinatsioon <code>Ctrl-^ .</code>. Viimasel juhul lõpetatakse pooleliolevate käskude täitmine, v.a kui pole kasutatud virtuaalterminali nagu screen või tmux.
Ühenduse saab sulgeda, nagu ka SSH puhul, kasutades käske <code>exit</code> või <code>logout</code>,<ref name="mosh-usage"/> toimib ka tühjal real <code>^D</code> saatmine ehk <code>Ctrl-D</code> vajutamine. Moshi ühenduse jõuliseks lõpetamiseks on klahvikombinatsioon <code>Ctrl-^ .</code> (<code>Ctrl-Shift-6</code> ning seejärel <code>.</code>).<ref name="mosh-usage"/> Viimasel juhul lõpetatakse pooleliolevate käskude täitmine, v.a juhul, kui pole kasutatud virtuaalterminali nagu screen või [[Tmux|tmux]].


===Kuidas abi saada===
===Kuidas abi saada===
Täpsemat infot Moshi parameetrite kohta leiab manuaalidest:  
Täpsemat infot Moshi parameetrite kohta leiab manuaalidest:<ref name="mosh-usage"/>
*<code>[http://manpages.ubuntu.com/manpages/precise/man1/mosh.1.html mosh]</code>
*<code>mosh<ref>[http://manpages.ubuntu.com/manpages/precise/man1/mosh.1.html Ubuntu manuals - mosh]</ref></code>
*<code>[http://manpages.ubuntu.com/manpages/precise/man1/mosh-server.1.html mosh-server]</code>   
*<code>mosh-server<ref name="mosh-server"/></code>   
*<code>[http://manpages.ubuntu.com/manpages/wily/man1/mosh-client.1.html mosh-client]</code>
*<code>mosh-client<ref name="mosh-client"/></code>
või terminalist käskudega:  
või terminalist käskudega:  
<pre>$ man mosh</pre>
<pre>$ man mosh</pre>
<pre>$ man mosh-server</pre>
<pre>$ man mosh-server</pre>
<pre>$ man mosh-client</pre>
<pre>$ man mosh-client</pre>
==Moshi alternatiivprogrammid==
Veebileht [http://alternativeto.net/ alternativeTo] pakub Moshile alternatiiviks järgmisi vabavaralisi tarkvaraprogramme:<ref>[http://alternativeto.net/software/mosh/ alternativeTo.net - Alternatives to mosh]</ref>
*OpenSSH
*Bitvise SSH Server (WinSSHD)
*FreeSSHd
*zFTPServer Suite
*copssh
Ülalnimetatud alternatiivid (v.a zFTPServer Suite) on sisuliselt aga erinevad SSH vormid ning seetõttu puuduvad neil (ka zFTPServer Suite-l) Moshile omased [[#Lisaomadused|eelised]].


==Kokkuvõte==
==Kokkuvõte==
Mosh on väga hea tööriist mobiilsetele inimestele, kes peavad tihti katkeva võrguühendusega töötama. Samas ei ole Moshi pakutav [[#Lisaomadused|lisaväärtus]] võrreldes [[Ssh|SSH]]-ga piisav, et koguda väga suurt kasutajaskonda, sest enamikel süsteemiadministraatoritel on võrguühendus piisavalt stabiilne, et oma tööd SSH-ga jätkata.
Mosh on väga hea tööriist mobiilsetele inimestele, kes peavad tihti katkeva võrguühendusega töötama. Samas ei ole Moshi pakutav [[#Lisaomadused|lisaväärtus]] võrreldes [[Ssh|SSH]]-ga piisav, et koguda väga suurt kasutajaskonda, sest enamikel süsteemiadministraatoritel on võrguühendus piisavalt kiire ja stabiilne, et oma tööd SSH-ga jätkata.


==Autor==
==Autor==
Line 141: Line 152:


==Allikad==
==Allikad==
https://mosh.org/ <br>
{{reflist}}
http://linoxide.com/how-tos/mosh-alternative-ssh/ <br>
https://linux-audit.com/mosh-ssh-alternative-for-system-administration/ <br>
https://github.com/rpwoodbu/mosh-chrome<br>
http://manpages.ubuntu.com/manpages/precise/man1/mosh.1.html<br>
http://manpages.ubuntu.com/manpages/precise/man1/mosh-server.1.html<br>
http://manpages.ubuntu.com/manpages/precise/man1/mosh-client.1.html


</div>
</div>


[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]

Latest revision as of 19:51, 1 November 2016

Mosh (Mobile Shell) on kaugterminal, mille abil on Interneti vahendusel võimalik turvaliselt kliendi arvutist serverisse ühendust võtta. Ta on väga sarnane SSH-le, lausa nõuab selle olemasolu, ent tal on lisaomadusi, millega on eriti silmas peetud mobiilset kasutajaskonda. Mosh annab vahetut tagasisidet, võimaldab võrgurändlust ning töötab ka katkeva ühenduse puhul.[1] Ühenduse loomiseks kasutab Mosh vaikimisi esimest vaba UDP porti vahemikus 60000--61000.[2]

Moshi esimene versioon (Mosh 1.0) lasti välja märtsis 2012. Praegune kõige värskem Moshi versioon tuli välja augustis 2016 (Mosh 1.2.6).[3]

Lisaomadused[1]

Vahetu tagasiside

Kui SSH puhul on vaja enne teksti ekraanile kuvamist ära oodata serveri vastus, siis Moshis kuvatakse teksti sisestamine, kustutamine või ridade muutmine koheselt. See toimib tänu Moshi võimele kasutaja tekstisisestusi ette ennustada.[4] Ennustatud tekst, mis pole veel serverilt vastust saanud, kuvatakse allajoonitult (Joonis 1). Pärast serverilt kinnituse saamist jooned eemaldatakse.

Joonis 1. Ühendus katkes pärast "ifc" kirjutamist.

Automaatne võrgurändlus

Kui võrguühendus peaks katkema, annab Mosh sellest staatuseribal koheselt teada, näidates viimasest õnnestunud ühendusest möödunud aega (Joonis 1). Kui võrguühendus taastatakse, sünkroniseerib Mosh automaatselt ning kasutajal on võimalik jätkata punktist, kus ta tegevus eelnevalt pooleli jäi ilma, et programmi oleks vaja taaskäivitada. Sama kehtib ka näiteks arvuti puhkerežiimist äratamisel, kui Mosh eelnevalt töötas.

Lisaks suudab Mosh tööd jätkata ka olukordades, kus kliendi IP muutub, näiteks vahetades ühendust WIFI võrgust mobiilsele internetile. Selleks on kasutusel State-Synchronization Protocol (SSP). Võrkude vahetamine ja ühenduse taastamine toimib kliendi jaoks nähtamatult ehk ei eelda kasutaja tegevust. Paketikadu ei teki. [4]

UTF-8 tugi

Moshi loomisel keskenduti ainult ühele kodeeringule – UTF-8 – mis on ka ainuke toetatud kodeering Moshis. Tänu viimistletud UTF-8 kodeeringule, parandab Mosh mitmed Unixi puugid juba olemasolevates terminalides ning SSH-s. Moshis on võimalik probleemideta kuvada ka hieroglüüfe.[4]

Puudused

Nõudmised serverile

Kui SSH on reeglina serveritel juba paidaldatud, siis Moshi kasutamiseks tuleb see paigaldada lisapaketina.[2] Suurem osa administraatoritest reeglina seda ei tee. Lisaks tuleb Moshi kasutades tähelepanu pöörata sellele, et tulemüür oleks seadistatud vastavaid UDP ühendusi lubama.[5]

IPv6 rändlus

Mosh toetab küll IPv6 protokolli, kuid IPv6 ühenduse puhul ei toimi automaatne võrgurändlus.[6]

Terminali kerimine

Hetkel uusim Moshi verisoon ei toeta väljundipuhvri kerimist. See tähendab, et pikema väljundi puhul pole võimalik ülespoole kerida, kui esimesed read aknasse ei mahtunud. Küll aga saab probleemist mööda, kui kasutada virtuaalsete terminalide screen või tmux abi. Lisaks on arendajatel plaanis puudus kõrvaldada Moshi tulevates versioonides. [7]

X11

Mosh ei võimalda kliendi arvutisse üle tuua graafilisi rakendusi serverilt X-i suunamise abil, nagu suudab seda SSH.[8]

Turvalisus[5]

Mosh kasutab serverisse sisselogimisel autentimiseks SSH-d, pärast mida käivitatakse kasutaja jaoks nähtamatult mosh-server[9], suletakse SSH ühendus ning käivitatakse mosh-client[10]. Kuna Mosh on loodud SSH baasil, omandab ta ka selle turvalisuse.

Mõneti on Mosh veelgi turvalisem kui SSH. SSH toetub turvalise andmevoo kandmisel autentimata edastusohje protokollile (Transmission Control Protocol ehk TCP). See tähendab, et ründaja võib sulgeda SSH ühenduse ka andmete krüpteeringut murdmata, sest tal on võimalik välja saata võltssegmente, mis näivad autentsed. Mosh seevastu kontrollib igat datagrammi, mistõttu ei saa ründaja Moshi sessiooni katkestada, kui ta just ei suuda pikema aja jooksul pakettide vahetamist takistada. Lühiajalise ründe korral tekitatakse kasutajale vaid näiline katkestus. Ründe lõppedes Moshi sessioon jätkub.

Viimase nelja aasta jooksul pole Moshil ühtegi turvaauku raporteeritud.

Moshi kasutamine

Vajadusel saab Moshi paigaldada ja kasutada ka ilma ülikasutaja (superuser) õigusi omamata,[11] ent süsteemiüleseks paigaldamiseks on vastavad õigused vajalikud.

Paigaldamine

Moshi kasutamiseks peab see olema paigaldatud nii klient- kui serverjaamal.[12] Mosh on saadaval järgnevatel platvormidel: Linuxi erinevad versioonid, Mac OS X, Android, Solaris, Cygwin, BSD. Lisaks sellele on Mosh olemas ka Chrome rakendusena, mida kasutatakse näiteks Windows operatsioonisüsteemi puhul.

Operatsioonisüsteem Paigaldamiskäsk[12]
Homebrew (OS X 10.5 or later) $ brew install mobile-shell
MacPorts (OS X 10.5 or later) $ sudo port install mosh
Cygwin (Windows) C:\> setup.exe -q mobile-shell
Alpine Linux # apk add mosh
Arch Linux # pacman -S mosh
Debian (squeeze-backports and later) $ sudo apt-get install mosh
Fedora (14 or later) $ sudo yum install mosh
Gentoo # emerge net-misc/mosh
openSUSE (12.3 or later) $ sudo zypper in mosh
Ubuntu $ sudo apt-get install mosh
FreeBSD # pkg install net/mosh
OpenBSD # pkg_add mosh
NetBSD (pkgsrc) # cd net/mosh; make install clean
OpenCSW (Solaris 10 Update 8 or later) # pkgutil -i mosh

Ühenduse loomine

Windows

Populaarne SSH klient Windowsil, PuTTY, ei sobi Moshi kasutamiseks, kuna sel puudub vastav tugi. Tänu mitmele praktilisele probleemile ei ole tõenäoline, et Moshi tugi PuTTY-sse luuakse,[13] seega tuleb kasutada muid alternatiive.

Kõige lihtsama moodusena saab Windowsi peal Moshi kasutada läbi Google Chrome'i laienduse, mida on võimalik alla laadida Chrome'i veebipoest.[14] Pärast rakenduse avamist tuleb loodava ühenduse parameetrid seadistada (Joonis 2). Nii Username kui ka Hostname on ühenduse loomiseks vajalikud.

Joonis 2. Sessiooni loomine Chrome'i abil.

Moshi kasutamisel läbi Chrome'i peab arvestama, et üks Mosh server command'i parameetritest – kasutuskoht (locale) – on vaikimisi seatud en_US.UTF-8 peale:[15]

 mosh-server new -s -c 256 -l LANG=en_US.UTF-8

Kui arvutis, kuhu ühendust võetakse, Moshis seadistatud kasutuskoht puudub, ei saa Moshi kasutada. Seetõttu tuleb kasutuskohta vajadusel muuta. Eesti kasutuskoha puhul peaks Mosh server command olema järgmine:

 mosh-server new -s -c 256 -l LANG=et_EE.UTF-8
Android

Androididel saab Moshi kasutada läbi JuiceSSH.[12] Nii nagu Chrome'i puhul, on ka JuiceSSH-s kasutuskoht vaikimisi en_US.UTF-8. Joonisel 3 on näidatud JuiceSSH seadistus eesti kasutuskoha puhul.

Joonis 3. Kasutuskoha muutmine JuiceSSH's.
Linux[2]

Linuxil (ja mitmel teisel operatsioonisüsteemil) saab Moshiga ühenduse luua sarnaselt SSH-le:

$ mosh username@hostname

Kui sama kasutajanimega ollakse juba terminali sisse logitud, pole tarvis enam kasutajanime välja kirjutada. Seega piisab käsust:

$ mosh hostname

Moshi on võimalik kasutada ka severil seda süsteemiüleselt mitte paigaldades. Kui mosh-server ei asu mõnes kaustas, mis on kaasatud $PATH muutujasse, tuleb programmi asukoht täpsustada:

$ mosh --server=/tmp/mosh-server hostname

Vaikimisi otsib Mosh esimese vaba UDP pordi vahemikus 60000 ja 61000. Et suunata Mosh kasutaja valitud UDP pordile, tuleb see täpsustada (nt 10000):

mosh -p 10000 hostname

Kuna algse ühenduse loomiseks kasutatakse SSH-d, siis võib olla vaja täpsustada erinevaid ssh käsu parameetreid. Seda saab teha --ssh võtme abil:

mosh --ssh="~/bin/ssh -p 2222 -i ./identity" hostname

Kui kasutaja soovib vahetu tagasiside keelata, tuleb selleks Moshi käivitamisel lisada võti -n:

mosh -n hostname

Ühenduse sulgemine

Ühenduse saab sulgeda, nagu ka SSH puhul, kasutades käske exit või logout,[2] toimib ka tühjal real ^D saatmine ehk Ctrl-D vajutamine. Moshi ühenduse jõuliseks lõpetamiseks on klahvikombinatsioon Ctrl-^ . (Ctrl-Shift-6 ning seejärel .).[2] Viimasel juhul lõpetatakse pooleliolevate käskude täitmine, v.a juhul, kui pole kasutatud virtuaalterminali nagu screen või tmux.

Kuidas abi saada

Täpsemat infot Moshi parameetrite kohta leiab manuaalidest:[2]

või terminalist käskudega:

$ man mosh
$ man mosh-server
$ man mosh-client

Moshi alternatiivprogrammid

Veebileht alternativeTo pakub Moshile alternatiiviks järgmisi vabavaralisi tarkvaraprogramme:[17]

  • OpenSSH
  • Bitvise SSH Server (WinSSHD)
  • FreeSSHd
  • zFTPServer Suite
  • copssh

Ülalnimetatud alternatiivid (v.a zFTPServer Suite) on sisuliselt aga erinevad SSH vormid ning seetõttu puuduvad neil (ka zFTPServer Suite-l) Moshile omased eelised.

Kokkuvõte

Mosh on väga hea tööriist mobiilsetele inimestele, kes peavad tihti katkeva võrguühendusega töötama. Samas ei ole Moshi pakutav lisaväärtus võrreldes SSH-ga piisav, et koguda väga suurt kasutajaskonda, sest enamikel süsteemiadministraatoritel on võrguühendus piisavalt kiire ja stabiilne, et oma tööd SSH-ga jätkata.

Autor

Kristiina Sikkar
AK21
oktoober 2016

Allikad