Android: Dropbear SSH serveris

Posted: 2015-01-18 in Darbeliai
Žymos:,

Šis rašymėlis galioja tik iki Android 4.4.4 versijos. Android 5 dar nepalaikoma.

Kam tas SSH serveris Android įrenginyje? Ogi tam, kad galėtumėte ten ką nors nuveikti prisijungę nuotoliniu būdu. Be abejo, turint omenyje, kad viską darysite komandinės eilutės priemonėmis. Šiaip atvejis gan retas, nelabai dažnai reikalingas, bet o gal pravers, kas čia žino. Man pradžioj to reikėjo išoriniam diskui prijungti, bet kai susitvarkiau init.d emuliaciją, SSH prireikia retai. Nebent ką nors iš vienos vietos į kitą perkelti ar šiaip apsikuopti.

Taigi pabandysime įdiegti į Android dropbear serveriuką. Jis toks nedidelis, lengvas, skirtas visokiems embedded prietaisams, kaip kad maršrutizatoriai, komutatoriai, medijos centrai ir pan. Kad šį serveriuką galėtume įdiegti, be abejo, pradžiai reikia root teisių ir opkg paketų diegimo sistemos, skirtos Android.

Toliau visas išvardytas komandas reikės subarškinti į Android terminalą. Kaip tą daryti — jau jūsų pasirinkimas. Aš esu šį diegimą atlikęs ir naudodamasis Terminal Emulator programėle, ir naudodamas adb shell. adb shell man patinka kur kas labiau, nes galiu viską atlikti sėdėdamas patogiai prie kompiuterio su normalia klaviatūra ir dideliu ekranu.

opkg diegimas

Užeinam į katalogą /data/local

cd /data/local

Ten paristempiam opkg archyvą:

wget http://dan.drown.org/android/opkg.tar.gz

Jei wget nėra arba neveikia, pabandykit parašyti busybox wget. Jei neveikia ir šis variantas, opkg.tar.gz failą parsitempkite kitomis priemonėmis ir įkelkite į Android įrenginį.

Archyvą išpakuojam:

tar -xzf opkg.tar.gz

Vėlgi, jei tar komanda neveikia arba jos neranda, bandykite busybox tar. Gal padės. O sėkmingai išpakuotą archyvą galima jau ir ištrinti su rm komanda.

Kai viskas išpakuota, /data/local kataloge atsiranda keli kiti katalogėliai: bin, etc, lib. Tai yra tokia „nešiojama“ opkg distribucija. Dabar jau galima bandyti ką nors nuveikti. Pradžiai parašom tokią komandą (įgalinam opkg komandos vykdymą):

export PATH=$PATH:/data/local/bin

Reikia atnaujinti opkg paketų sąrašą:

opkg update

O toliau, kas labai įdomu, reikia būtinai iš naujo įdiegti ir patį opkg:

opkg install opkg

Kitaip jis pilnai neveiks ir bus problemų.

Galite parašyti komandą opkg list ir ten pamatysite visus galimus įdiegti paketus. Jų ten nėra daug, bet mums dabar vienintelio ir tereikia.

Pastabėlė. Kai kitą kartą prisijunsite prie įrenginio (ar per terminalą, ar per adb), reikės vėl reikės eksportuoti kelią iki opkg komandos. Galima šiuo keliu papildyti .profile failą, kad nereikėtų kaskart vargti.

Dropbear diegimas

Su opkg įdiegtas dropbear SSH serveris turi du apribojimus:

  • „Naminiu“ katalogu jis laiko /data/root
  • Priimama autentifikacija tik viešu raktu, su slaptažodžiu neprisijungsite

Tiesa, pastarasis punktas man atrodo daugiau kaip privalumas, nei trūkumas. Autentifikacija per SSH su slaptažodžiu — dalykas nerimtas.

Dabar reikia įdiegti dropbear:

opkg install dropbear openssh

Toliau reikia paruošti aplinką.

mkdir /data/root
busybox chmod 700 /data/root
cd /data/root
busybox mkdir .ssh
busybox chmod 700 .ssh
> .ssh/authorized_keys

Na ir viskas. Dabar į authorized_keys failą įkelkite savo autorizuojamų kompiuterių viešuosius raktus, paleiskite įrenginyje komandą dropbear ir bandykite prisijungti.

Kaskart perkrovus įrenginį reikės kartu paleisti ir dropbear. Todėl verta jį įdėti į savo init.d skriptų krūvelę. Mano 02dropbear skriptuko turinys va toks:

#!/system/bin/sh
export PATH=$PATH:/data/local/bin
dropbear

Tiesa, įdiegus optware į Android galima ir tiesiog sshd paleisti, bet opkg įdiegimas palyginti yra paprastas, kaip jau minėjau, nesunkiai atliekamas ir įrenginyje naudojantis terminalu. Tuo tarpu optware be adb shell praktiškai įdiegti nepavyks. Na, gal ir būtų įmanoma, bet jau žiauriai daug vargo.

Reklama

Parašykite komentarą

Įveskite savo duomenis žemiau arba prisijunkite per socialinį tinklą:

WordPress.com Logo

Jūs komentuojate naudodamiesi savo WordPress.com paskyra. Atsijungti / Keisti )

Twitter picture

Jūs komentuojate naudodamiesi savo Twitter paskyra. Atsijungti / Keisti )

Facebook photo

Jūs komentuojate naudodamiesi savo Facebook paskyra. Atsijungti / Keisti )

Google+ photo

Jūs komentuojate naudodamiesi savo Google+ paskyra. Atsijungti / Keisti )

Connecting to %s