Osa 2: Ubuntu ja Linux-palvelimen ylläpito#

Mikä on Ubuntu?#

Ubuntu on Linux-jakelu. Käytämme tällä kurssilla ensisijaisesti Ubuntu virtuaalipalvelimia.

Miksi Ubuntu?#

Tässä muutamia syitä.

  • Ubuntu server on aloittelijaystävällinen ja lähestyttävä palvelinkäyttöjärjestelmä. Ubuntuihin tulee säännöllisesti päivityksiä, ja ne saavat tukea suht pitkään. Ubuntu on helppo päivittää tai asentaa uusiksi jos jotain menee rikki.

  • Ubuntu-yhteisö on laaja ja yleisiin kysymyksiin löytyy helposti vastauksia internetistä. Lähes kaikki Linux-ohjelmistot on suunniteltu ja testattu Ubuntulla.

  • Ubuntu on stabiili. Ubuntu-päivitykset harvemmin rikkovat palveluita, jotka pyörivät palvelimella. On kuitenkin syytä olla varovainen, ja tehdä varmuuskopiot ennen suuria päivityksiä, varsinkin jos palvelimeen ei ole fyysistä pääsyä.

Palvelimen ylläpito#

Ubuntu-palvelimen, ja ylipäätään Linux-pohjaisten palvelinten ylläpitoon kuuluu

  1. Paketinhallinnan päivitykset
    Päivitä palvelimen ohjelmistot ja turvallisuuspäivitykset säännöllisesti:

    sudo apt update && sudo apt upgrade -y
    
    • apt update päivittää pakettiluettelot.

    • apt upgrade asentaa saatavilla olevat päivitykset.

Fish komentokehote#

Fish on kuin Bash, mutta siinä on paljon tehokäyttöön tarkoitettuja ominaisuuksia:

  • Paremmat värit

  • Automaattinen täydennys (nuoli oikealle)

  • Parempi komentohistoriahaku (Ctrl-R)

Omien SSH avainten luonti#

  1. Suorita omalla koneella (esim uudessa Git Bash ikkunassa):

    ssh-keygen -t ed25519
    
    • Vastaa kysymyksiin.

    • Voit luoda salasanalla salatun avaimen jos haluat.

    • Avaimen salainen ja julkinen osa löytyy ~/.ssh hakemistosta.

    SSH agentti auttaa hallitsemaan montaa avainta “avainnipussa”. Agentin ansiosta salattu avain tarvitsee avata vain kerran: kun luo agentin.

  2. Seuraavaksi kopioi SSH-avaimen julkinen osa

    cat ~/.ssh/id_ed25519.pub
    

    Git Bashissa voi kopioida pikanäppäimellä Ctrl+Insert

  3. Nyt, virtuaalikoneellasi muokkaa ~/.ssh/authorized_keys (luultavasti uusi tiedosto)

    nano ~/.ssh/authorized_keys
    

    Liitä askeleessa 2 kopioimasi avaimen julkinen osa tiedostoon (Git bash liitä-toiminto Shift+Insert). Sulje nano: Ctrl-S ja sitten Ctrl-X

  4. Katso palvelimesi nimi komennolla hostname

  5. Yhdistä palvelimeesi SSH:lla. Korvaa komennossa user ja host (Ubuntu-) käyttäjänimelläsi ja palvelimen nimellä.

    ssh user@host -J self-hosted@fablab-systems.fi,oppilas@10.129.0.2
    

    Yhdistäminen vaatii, että molemmat SSH-avaimet (kurssin yhteinen ja tässä luotu) ovat agentissa. Näet agentissa olevat SSH-avaimet komennolla

    ssh-add -l
    

VS Code:lla yhdistäminen pannuun#

VS Code on koodieditori, jonka saa ladattua yritysportaalista.

VS Code tukee SSH:lla Ubuntu-palvelimeen yhdistämistä. Koska kurssin pannut ovat parin verkkohypyn takana, SSH:n konfiguraatioon pitää tehdä muutama muutos.

Nämä konfigurointiaskeleet riittää tehdä kerran:

  1. Avaa VS Code ja paina vasemmasta alanurkasta olevasta painikkeesta

  2. Valitse SSH, jonka jälkeen valitse open SSH configuration tai vastaava, jonka jälkeen valitse ylin vaihtoehto. SSH-konfiguraatiotiedosto (~/.ssh/config) pitäisi nyt olla auki VS Codessa

  3. Liitä seuraava teksti konfiguraatiotiedostoon

    Host HOSTNAME
        HostName HOSTNAME
        User USER
        ProxyJump self-hosted
        IdentityFile ~/.ssh/id_ed25519
        
    Host self-hosted
        HostName 10.129.0.2
        User oppilas
        ProxyJump fablab-systems.fi
        IdentityFile ~/.ssh/oppilas_self_hosted
    
    Host fablab-systems.fi
        HostName fablab-systems.fi
        User self-hosted
        IdentityFile ~/.ssh/oppilas_self_hosted
    

    Korvaa HOSTNAME pannusi nimellä ja USER pannulle asettaneella käyttäjänimelläsi.

Nyt ja jatkossa voit yhdistää palvelimeesi painamalla alanurkan painikkeesta uudelleen ja valitsemalla palvelimesi nimen.

Vinkki

SSH-konfiguraation myötä voit myös yhdistää palvelimeesi käyttämällä lyhyempää komentoa esim. Git Bashissä:

ssh HOSTNAME