iPad, SSH ja Blink.sh

Alunperin julkaistu: iPad, SSH ja Blink.sh » EksisONE

Kaikissa (siltä osin kuin tiedän) ympäristöissä on mahdollisuus avata shell tai terminaali, mitä nimeä sitten haluatkin käyttää, ja avata SSH-yhteys. Kaikissa muissa, mutta ei Applen i-laittessa, iPhonessa ja iPadissä. Toki niissäkin SSH on mahdollinen, mutta ei natiivisti eikä ilmaiseksi. Moinen sotii jostain syystä Applen logiikkaa vastaan, jossa mobiilien tarkoitus on tuottaa yksinkertaista kulutusmediaa ja painopiste on passiivisessa median kuluttamisessa. Mikään ei ole niin suuri bluffi kuin iPadin käyttö luomiseen.

Applen asenne on harmi, sillä käyttötasolla mikään tabletti ei ole käytettävyydeltään vielä lähelläkään iPadin tasoa – mutta lähestyvät. Ja niin kauan kun Applen ainoa painopiste on tehdä USB-liitäntäisten massamuistien käyttö mahdollisimman vaikeaksi, koska iPad Pron saa gigan muistilla ja iCoudilla loput, ja pyrkiä tekemään kaiken mahdollisen, että muita kuin Applen hyväksymiä median tiedostomuotoja ei käytettäisi, niin iPadit tipahtavat pro-tasolta. Kun iPad Pron hinta on sama kuin kalliin läppärin, mutta sillä ei pysty tekemään kuin murto-osan läppärin töistä, niin Applen kirkkaat tuplatarkkuuden kuvat ja 10 tunnin akunkesto on aika heikko myyntivaltti.

Ihan oikeasti. Edelleenkin podcastien de facto vaatima MP3 on lähellä mahdotonta, koska Apple ei tue sitä. Ole siinä sitten luova.

iPad ei ole koodaus- eikä kehitysympäristö, mutta sitä voi käyttää siinäkin työssä aputyökaluna. Mahdollisuudet laajenevat, kun asioita aletaan tekemään etänä SSH:n yli – kunhan ensin saa SSH:n toimimaan.

Minä en ole loisteputkien kalvakkaan valossa ruskettuva ja Red Bullilla energiansa saava nörtti. Minä hankin rusketukseni keittiön ikkunan läpi istuessani köökin pöydän ääressä ja juon kahvia sekä Ediä. Ja nörtteys rajoittuu oman sisäverkon säätämiseen ja verkkosivujen aiheuttamaan työpaineeseen virtuaaliserverien suunnalta.

Siinäkin työssä iPad helpottaa. Varsinkin kun on reissussa. Kunhan saa SSH:n toimimaan.

Disclaimerit tulevaisuudelle

Mikään nettiin laitettu ei koskaan häviä, joten muistutetaan muutamasta perusasiasta:

  • Kirjoitettu piti paikkaansa viidennen sukupolven iPadille
  • Käytössä oli iOS 13.6
  • Artikkelin päiväys kertoo koska juttu on kirjoitettu tai muokattu ajantasaiseksi

Asiat voivat muuttua, ja usein muuttuvatkin ajan ja versioiden myötä. Joten on mahdollista, jopa toivottavaa, että asiat menevä eteenpäin ja tämä(kin) juttu muuttuu vain muistutukseksi historiasta, miten asiat olivat joskus

SSH vaatii appin

Koska iOS ei tarjoa natiivisti SSH:ta, eikä ylipäätään minkäänlaista shelliä, niin asiat on tehtävä asentamalla iTunesista sopiva app. Valinta on helppo, koska harkitsemisen arvoisia vaihtoehtoja on tasan kaksi: Termius ja Blink Shell. Ne ovat perusteiltaan samankaltaisia, mutta niissä on yksi erottava tekijä.

Termius on kallis. Aivan päättömän kallis. 69,99 € vuosi tai 6,99 kuukaudessa. Mikään ei perustele tuota hintaa. Siinä ei ole mitään sellaista miksi hinta kannattaisi maksaa.

Blink Shell on järkevämmin hinnoiteltu – kertahintana 21,99 €. Sekin on sen verran paljon, että satunnaiskäyttäjä luultavasti toteaa, että pitäkää tunkkinne, eikä käytä iPadillä SSH:ta. Mutta jos SSH:lle on aito tarve, niin hinta on maksettavissa.

iTunes tarjoaa toki muitakin, mutta niissä on aina sanomista hinnoittelun tai ominaisuuksien suhteen. Yleensä molemmissa. Säästät aikaa ja vaivaa, kun teet valinnan jomman kumman välillä – ja sitten valitset Blinkin. Ja ei, en saa provikkaa.

Asensi minkä tahansa, niin tarvitsee näppäimistön. Jonkun nopean kertaluontoisen asian voi tehdä ruutua hakkaamalla, mutta ei yhtään sen enempää. Joten kun sanotaan, että iPad on hyvä ja näppärä työkalu, niin se tarkoittaa, että tarvitset iPadin lisäksi (versiosta riippumatta) satasen luokkaa olevan ulkoisen näppäimistön sekä suurella todennäköisyydellä saman hintaisen kynän.

Molemmat ovat kalliita ja nostavat laitteen kokonaishintaa mielenkiintoisesti. Mutta faktan oloinen asia on, että kummatkin helpottavat tekemistä aivan suunnattomasti.

Blinkin minimalismi

Varmaan eniten esitetty kysymys Blinkin asennuksen jälkeen on, että mitä nyt. Edessä on musta ruutu ja kehoitteena on blink>❚. Ei helppejä, ei mitään. Blink ei ole mikään SSH:n alkeiden opettelukurssi, vaan työkalu. Ja työkalun kohdalla oletus usein on, että tietää suunnilleen mitä tekee tai pitäisi tehdä. Silti Blinkin käyttäjäyställisyys aloittelijoille on… ei kovinkaan hyvä.

Minimalistisuus muuttuu eduksi kohtuullisenkin nopeasti, mutta ehkä tuohon olisi voinut kehittää jonkun enemmän UX-tyyppisen ratkaisun.

Jos ihmettelyvaiheessa antaa komennon ssh tunnus@11.22.33.44 niin yhteyden auetessa viimeistään tajuaa, että hetki – tämähän siis on SSH-clientti, mitä oikeastaan odotin – graafista käyttöliittymää komentorivillekö.

Mac-käyttäjät olisivat varmaan nopeammin tajunneet painaa iPadin mac-layoutin näppäimistöstä ⌘-merkkiä, mutta minulla Win-pohjaisena sen oivaltamiseen tarvittiin komento help. Komento, joka muuten auttaa aika usein monessakin paikassa.

Jos vielä tässä vaiheessa jättää config-komennon väliin ja kokeilee muita bashin komentoja, niin selviää, että Blinkin käyttöliittymä on bash. Aivan yhtä nopeasti huomaa, että se on sitä vain oleellisilta osin. Yhteyksien tekemisiin liittyviä komentoja, kuten ssh-keygen tai jopa ifconfig löytyy, mutta taasen nano tai mikä tahansa muu editori puuttuu.

Blink on SSH-yhteyksiin tehty client, ei laitteen hallitsemiseen käytettävä. Joka on täysin loogista, koska Blink toimii omassa hiekkalaatikossaan eikä Apple salli iOS:n puitteissa mitään pääsyä oikein mihinkään – paitsi tiedostotasolla appien välillä.

Joten jos on ollut haaveissa käynnistää SSH-serveri iPadiin, niin unohda. Eikä moisessa olisi mitään mieltäkään – ei Apple salli iPadin kaukokäyttöä SSH:n ja shellin kautta, edes X:llä.

config

Komento config avaa ensimmäisen graafisemman oloisen ikkunan. Osioiden nimet, kuten CONNECT, TERMINAL jne. ovat hyvinkin itseäänselvittäviä. Jos ohitetaan itse apin käyttöön liittyvä asiat, kuten haluaako synkata iCloudin kanssa (joka kannattanee), niin oivaltaa hyvin nopeasti selvän SSH:n käytön perusasian: ikkuna on itseasiassa käyttöliittymä ~/.ssh/config tiedostolle.

Keys esittää mitkä yksityiset SSH-avaimet ovat saatavilla – kunhan muistaa ensin luoda moisen ssh-keygen komennolla. Blinkiin voi tuoda olevan avaimen, ja sen saa tehtyä helpoiten iCoudin kautta, mutta toki siirto onnistuu Tiedostot-apin kautta, jolloin se koioidaan Blinkin hakemistoon. Sitten Blinkissä annetaan esimerkiksi komento mv iCloud/id_rsa .ssh/. Komento ls toimii iloisesti, kunhan muistaa, että Blinkissä – kiitos iPadin hiekkalaatikon – osoite ei ole muotoa ~/ vaan eräällä tavalla ollaan jo kotihakemistossa.

Hosts on sama kuin aloitettaisiin ~/.ssh/config tiedostossa uusi host – eli se on käytettävä alias. Sitten asetetaan tuttuun tapaan

  • HostName (nimi tai IP-osoite),
  • portti (jos joku muu kuin 22),
  • käyttäjä (siihen saa pari pykälää alempana asetettua oletuksen eli sama kuin Host * \ User tunnus),
  • salasana, jos sitä käyttää eikä halua aina naputella moista
  • mitä salaista SSH-avainta käytetään (täytyy löytyä Keys-osiosta)
  • ProxyCommand, jos tekee hyppyjä – ja tässä on kirjoitushetkellä Blinkin yksi heikkous, se ei hallitse ProxyJump komentoa eli mennään vanhemmalla tyylillä

Alempana on moshin vaatimat asetukset.

  • Command on mosh-serverin vaatima komento. Siihen periaatteessa pitäisi laittaa koko polku, joka lienee /usr/bin/mosh-server mutta koska minulla moinen löytyy polusta, niin ihan vaan mosh-server riittää
  • Port, jos on laittanut kohteessa moshille jonkun muun portin kuin 60000-alkavan
  • Prediction arvaa mitä käyttäjä on kirjoittamassa, jos/kun yhteys katkeaa; minulla ei ole tähän näkemystä
  • Startup command on ohjetekstin mukainen; jos tiedät mitä tarvitset, niin laitat, ja jos et, niin jätä tyhjäksi

Loput kohdista ovat makuasioita.

Oma config

Blinkissä pitäisi pystyä käyttämään omaa config-tiedostoa. Se ylittää silloin ohjelman oman. Tekijöiden mielestä suurin murhe on silloin, että tab-täydennys ei toimi.

Siirrä ensin iCloudilla, Tiedostot-appilla tai jollain muulla vastaavalla oma config Blinkin kansioon. Silloin se näkyy ls-komennolla. Sen jälkeen mv– tai cp-komento kuvioihin ja siirrät sen .ssh hakemistoon – ja voilá, oma config on käytössä.

Tai pitäisi olla. Minulla tab ei ollut suurikaan kysymysmerkki, vaan että oman config tiedoston kanssa mikään yhteys ei toiminut. En tiedä, ehkä sinne olisi pitänyt laittaa IdentifyFile mutta kyllästyin kokeiluihin ja annoin komennon rm -f .ssh/config – pärjään Blinkin omallakin.

Sormieleet

Sormieleet ovat melkoisen perustasoa:

  • kahdella sormella napauttaminen avaa uuden terminaalin
  • yhdellä sormella vasemmalle tai oikealle siirtyy seuraavaan terminaaliin
  • fontin (ikkunan) koon muuttaminen tapahtuu nipistämällä

Jos on uuden terminaalin sijaan tottunut käyttämään screen komentoa, niin sekin toimii.

Mitä sitten?

Sitten asennat mosh-serverin, jos se on sinulle mahdollista, ja alat käyttämään moshia ssh:n sijaan.

Jossain vaiheessa voit uhrata aikaa selvittääksesi miten vaikka tunnelointi onnistuu. Tai miten mikä tahansa haluamasi tai tarvitsemasi (nuo eivät ole sama asia) nippeli onnistuu. Minä en tiedä niistä mitään, koska käytän SSH-klienttiä vain simppeliin kirjautumiseen. No, oikeammin moshia, mutta sama asiahan tuo on hyvin pitkälle.

1 Like

No, tulinpa tämänkin lukeneeksi vaikka ymmärsin ehkä vain 1/3 lukemastani :smirk:.

Ei sitä ymmärräkään, jos ja kun ei tarvitse SSH-yhteyttä mihinkään. Ja perimmäinen pointti on, että Apple on tehnyt iPadit passiivista kulutusta varten. Jopa silloin kun on ostanut 1400 euron Pro-mallin.

Tosin, olen nyt vuoden ajan tehnyt lähes kaiken iPadillä. Paitsi podcastit, enkä niitäkään ole tehnyt aikoihin (pitäisi, maksan siitäkin ilosta Adobelle parikymppiä joka kuukausi ja ihan turhaan tällä hetkellä).

1 Like