Hoppa yfir í efnið

Kynning á Linux

Í þessum kafla ætlum við að stíga okkar fyrstu skref í heimi Linux. Linux er ekki bara eitt stýrikerfi, heldur fjölskylda kerfa sem deila sama grunni: Linux kjarnanum (e. kernel). Linux er notað mjög víða, m.a. á vefþjónum, skýjalausnum, ofurtölvum, ívafskerfum (e. embedded systems) og snjallsímum, en Android er einmitt byggt á Linux kjarnanum.

Vissir þú?

Heitið Linux er dregið af nafni Linus Torvalds, sem hóf þróun kerfisins árið 1991. Hann ætlaði upprunalega að nefna kerfið „Freax“ (blanda af free, freak og x fyrir Unix), en vinur hans sem hýsti skrárnar breytti nafninu í Linux án þess að spyrja!

Fylgiþjónninn (Companion Server)

Til að læra á stýrikerfi er ekki nóg að lesa um það, heldur er einnig mikilvægt að prófa sig áfram. Með þessu kennsluefni höfum við því sett upp sérstakan fylgiþjón. Með því að tengjast honum færðu aðgang að raunverulegu Linux-umhverfi þar sem þú getur æft skipanir, leyst verkefni og gert tilraunir án þess að eiga á hættu að rugla í eigin tölvu.

Til þess að tengjast þjóninum notum við staðal sem kallast SSH (e. Secure Shell).


Hvað er SSH?

SSH er leið til að tengjast annarri tölvu yfir netið á öruggan hátt. Þegar við tengjumst með SSH fáum við skeljaglugga sem keyrir á hinni tölvunni. Allt sem við skrifum er sent dulkóðað yfir netið til hinnar tölvunnar.

Dulritun með dreifilyklum (e. public-key cryptography)

SSH getur notað svokölluð lyklapör í stað hefðbundinna lykilorða og það er sú leið sem við notumst til að tengjast fylgiþjóninum. Við köfum dýpra í þessa tegund dulritunar síðar, en eins og nafnið gefur til kynna samanstendur lyklaparið af tveimur lyklum sem hægt er að hugsa sér á eftirfarandi hátt:

  • Dreifilykill (e. public key): Segjum sem svo að þú viljir láta senda þér dulkóðuð skilaboð. Í því tilfelli þá hefur þú dreifilykilinn aðgengilegan þeim sem þú vilt að sendi þér skilaboð. Dreifilykillinn hegðar sér eins og opinn hengilás. Hann er hægt að nota til að dulrita skilaboð sem eru svo send til þín, en hann er ekki hægt að nota til að dulráða skilaboð.
  • Einkalykill (e. private key): Þetta er lykillinn að hengilásnum sem þú getur notað til að dulráða skilaboð sem dulrituð voru með dreifilyklinum. Eðli málsins samkvæmt á einkalykillinn að vera leyndarmál og á aldrei að deila honum, enda geta allir sem komast yfir hann dulráð þau skilaboð sem dulrituð eru með dreifilyklinum.

Með SSH sannar tölvan þín að hún hafi einkalykilinn án þess að senda hann yfir netið þegar þú tengist þjóninum. Þannig getur þjónninn hleypt þér inn án þess að einkalykillinn fari nokkurn tímann frá tölvunni þinni.

Geymdu einkalykilinn vel

Dreifilykilinn má afrita, senda og deila opinberlega. Hefð er fyrir því að dreifilyklar séu geymdir í skrám sem enda á .pub, t.d. id_ed25519.pub. Passaðu því að dreifa aðeins þeim lykli!

Einkalyklar eru yfirleitt geymdir í skrám án endingar (oftast sama nafn og dreifilykillinn án .pub endingarinnar), t.d. id_ed25519. Þessum lykli má aldrei deila með öðrum!

Lykilorð á einkalyklum

Flest tól sem sjá um að smíða lyklapör fyrir okkur bjóða upp á að einkalykillinn sé dulkóðaður með lykilorði eða aðgangssetningu (e. passphrase). Í því tilfelli þarf að slá inn lykilorðið í hvert skipti sem einkalykillinn er notaður, eins og t.d. til að tengjast þjóni með SSH. Þetta eflir öryggi lykilsins til muna, en dulkóðunin tryggir að ef einkalykillinn lekur þá er ekki hægt að misnota hann nema að finna lykilorðið líka.

Það er því ávallt mælt með því að nota einkalykla með lykilorði.


Hvernig tengjumst við?

Aðferðin fer aðeins eftir því hvaða stýrikerfi þú notar á eigin tölvu.

Linux og macOS

Á Linux og macOS er SSH yfirleitt innbyggt í stýrikerfið sjálft. Opnaðu skeljaglugga og fylgdu eftirfarandi skrefum.

Búa til lyklapar

Til að smíða okkar eigið lyklapar getum við keyrt skipunina

ssh-keygen -t ed25519
í skeljaglugganum þar sem við erum beðin um að svara nokkrum spurningum:

  1. Fyrst erum við spurð um hvar við viljum geyma lykilinn. Sjálfgefna stillingin er oftast í lagi, og í því tilfelli getum við ýtt á Enter.
  2. Næst erum við spurð um lykilorðið sem við viljum nota fyrir einkalykilinn. Ef við viljum ekki nota lykilorð getum við ýtt á Enter. Endurtaka þarf svo lykilorðið (eða ýta aftur á Enter ef ekki á að nota lykilorð).

Lyklaparið ætti þá að vera tilbúið.

Skoða dreifilykilinn

Til að ganga úr skugga um að lyklaparið hafi örugglega verið framleitt og sé á sínum stað, þá er gott að athuga hvort dreifilykillinn sé á sínum stað. Ef sjálfgefin staðsetning lykilsins var valin getum við keyrt skipunina

cat ~/.ssh/id_ed25519.pub
sem prentar innihald dreifilykilsins, sem byrjar á ssh-ed25519..., á skjáinn.

Hlaða upp dreifilyklinum

Afritaðu allan textann sem byrjar á ssh-ed25519... og límdu hann inn á stillingasíðu Hakkaraskólans https://hsk.ggc.tf/settings#linux-lab (undir Public key). Veldu lyklinum svo eitthvað lýsandi nafn.

Windows

Á Windows eru nokkrar góðar leiðir í boði.

WSL (Windows Subsystem for Linux) - mælt með

WSL leyfir þér að keyra Ubuntu eða annað Linux-umhverfi inni í Windows.

Uppsetning

Fylgdu leiðbeiningum Microsoft um uppsetningu WSL

Notkun

Opnaðu „Ubuntu“ úr Start-valmyndinni og fylgdu síðan leiðbeiningunum fyrir Linux hér að ofan.

Sýndarvél (e. virtual machine)

Sýndarvélar leyfa þér að keyra heilt stýrikerfi í glugga inni í þínu eigin stýrikerfi. Til dæmis geturðu keyrt Linux inni í Windows eða macOS.

Flestar sýndarvélar þurfa sérstakan hugbúnað (e. hypervisor) til að keyra. Þekktasta dæmið fyrir almenna notendur er VirtualBox sem er ókeypis og opinn hugbúnaður, en einnig eru til aðrar lausnir eins og VMware, UTM (sérstaklega vinsælt á nýrri Mac tölvum með Apple Silicon örgjörva) og Hyper-V (innbyggt í Windows Pro).

Hér eru skrefin til að setja upp Ubuntu Linux með VirtualBox:

  1. Sækja VirtualBox: Farðu á opinberu vefsíðuna hjá VirtualBox og sæktu nýjustu útgáfuna fyrir þitt stýrikerfi (t.d. Windows Installer) og settu hana upp.
  2. Sækja Ubuntu diskamynd (ISO): Farðu á vefsíðu Ubuntu og sæktu Desktop útgáfuna (þetta er stór skrá, oft um 4-5 GB, sem endar á .iso). Við mælum með LTS (e. Long Term Support) útgáfu.
  3. Búa til nýja sýndarvél:
    • Opnaðu VirtualBox og smelltu á New (Nýtt).
    • Gefðu sýndarvélinni lýsandi nafn (t.d. „Ubuntu“) og veldu hvar á að geyma hana.
    • Undir ISO Image velurðu .iso skrána sem þú sóttir í skrefi 2.
    • VirtualBox mun sjálfkrafa greina að þetta sé Ubuntu og bjóða upp á sjálfvirka uppsetningu (e. unattended install). Þú getur breytt notandanafni og lykilorði þar ef þú vilt, eða látið það vera.
  4. Úthluta auðlindum (Vinnsluminni og örgjörvar):
    • Mælt er með að gefa sýndarvélinni að minnsta kosti 4 GB (4096 MB) af vinnsluminni (e. RAM) og 2 örgjörva (e. CPU) ef tölvan þín leyfir það, svo hún keyri hjálpandi hratt.
  5. Búa til sýndardisk (Virtual Hard Disk):
    • Úthlutaðu að minnsta kosti 25 GB af diskplássi (þetta er sýndarpláss og tekur ekki allt plássið af alvöru disknum þínum strax).
  6. Keyra og setja upp:
    • Smelltu á Finish. Sýndarvélin ætti að ræsa sig sjálfkrafa og hefja uppsetningu á Ubuntu.
    • Fylgdu leiðbeiningunum á skjánum. Þegar uppsetningunni er lokið þarftu að endurræsa sýndarvélina (smelltu á Enter þegar hún biður um að fjarlægja diskinn).

Þegar uppsetningu er lokið ertu með fullbúið Linux kerfi inni í glugga á tölvunni þinni! Þar geturðu opnað skeljaglugga (e. Terminal) og fylgt sömu leiðbeiningum og fyrir Linux hér að ofan til að búa til lyklapar og tengjast fylgiþjóninum.

Aðrar leiðir

Við mælum eindregið með að setja annað hvort upp WSL eða sýndarvél, þar sem þú getur þá keyrt Linux forrit á þinni eigin tölvu síðar. Ef þú vilt aðeins tengjast Linux þjóninum eru eftirfarandi leiðir einnig í boði:

PowerShell eða skipanalínan (CMD)

Nýrri útgáfur af Windows 10 og 11 bjóða upp á ssh og ssh-keygen í PowerShell. Kveikja þarf sérstaklega á þeirri virkni.

Fylgja má þá leiðbeiningum í Linux kaflanum varðandi keyrslu á ssh og ssh-keygen. Dreifilykilinn má yfirleitt finna í skránni:

C:\Users\Nafn\.ssh\id_rsa.pub
PuTTY

PuTTY er SSH-forrit fyrir Windows.

  • Sæktu PuTTY pakkann (eða putty.exe og puttygen.exe ef þú vilt ekki setja upp allan pakkann) af opinberu síðunni eða Windows Store.
  • Notaðu PuTTYgen til að búa til lykil.
  • PuTTY (eða putty.exe) er svo notað til að tengjast sjálfum þjóninum.

Windows, Linux eða Mac?

Algeng spurning sem vaknar þegar kemur að gagnaglímum er: hvaða stýrikerfi er best að nota? Svarið við því er einfaldlega það sem þér finnst þægilegast að nota. Flest verkefni gagnaglíma er hægt að leysa óháð stýrikerfi. Í einstaka verkefnum er nauðsynlegt að vera með ákveðið (eða ákveðna tegund af) stýrikerfi og er hægt að leysa það með ýmsum hætti.

Ef þörf er á Linux umhverfi í Windows er WSL einföld lausn til að keyra Linux forrit inni í Windows.

Undir öllum kringumstæðum, þ.e. til að keyra Windows forrit á Linux eða Mac eða öfugt, má notast við sýndarvélar (e. virtual machines). Með þeim er hægt að keyra heilt stýrikerfi inni í því stýrikerfi sem við notum.


Fyrsta innskráning

Með því að keyra skipunina

ssh skoli[auðkenni]@lintest.ggc.tf
þar sem [auðkenni] er auðkennistalan þín í Hakkaraskólanum, opnum við SSH tengingu við Linux þjóninn. Notandanafnið þitt á þjóninum er skoli[auðkenni] og þú getur nálgast það efst á stillingasíðunni.

SSH config

Hægt er að stilla SSH þannig að það viti hvernig eigi að tengjast ákveðnum þjónum. Þessar stillingar eru geymdar í skránni ~/.ssh/config (þar sem ~ vísar til heimamöppunnar þinnar, t.d. /home/notandi/). Ef þessi skrá er ekki nú þegar til má búa hana til. Bæta má þá eftirfarandi texta inn í skrána:

Host skoli
    Hostname lintest.ggc.tf
    User skoli[auðkenni]
    # Ef ekki er notast við sjálfgefinn SSH lykil, þá er hægt að velja
    # hvaða einkalykil á að nota fyrir þessa tengingu
    # IdentityFile /home/notandi/.ssh/skoli_key

Þessar stillingar segja SSH hvaða notandanafn á að nota þegar tengst er við fylgiþjóninn og hvaða einkalykil, sé sjálfgefinn lykill ekki notaður. Í stað þess að gefa upp notandanafn og lén þjónsins þegar við tengjumst, þ.e.

ssh skoli[auðkenni]@lintest.ggc.tf

er þá nóg að skrifa einfaldlega

ssh skoli

þar sem við nefndum hýsiskilgreininguna (e. host declaration, þ.e. Host skoli) skoli.

Ef allt gengur upp sérðu eitthvað á þessa leið:

Welcome to Ubuntu 24.04.4 LTS...
skoli[auðkenni]@skoli-linux-intro:~ %

Þetta kallast skipanakvaðning (e. command prompt). Hún bíður eftir að þú skrifir skipun. Í næsta hluta ætlum við að skoða hvernig við tölum við kerfið með skipunum.