Hyppää sisältöön

Welcome to our weekly research support coffee hour on Zoom! Click here for more information.

Warning!

Puhti scratch disk is becoming very full (80+ % ) resulting in performance degradation. Everybody is advised to only keep actively processed data on scratch, all other data should be deleted, transferred to host institute or stored in Lumi-O. No new quota will be granted. Click here for a tool for examining your disk usage.

Miten voin antaa muille ihmisille pääsyn VM:ääni Poudassa?

Kun uusi VM luodaan, yksi oletuskäyttäjä luodaan automaattisesti. Lisäksi yksi SSH-avainpari antaa pääsyn kyseiselle oletuskäyttäjälle kyseisessä VM:ssä. Tämä antaa pääsyn kyseiseen VM:ään yhdelle henkilölle: sille, joka loi VM:n ja joka omistaa SSH:n yksityisen avaimen. Katso lisätietoja SSH-avaimista ja protokollasta yleisesti Wikipedian artikkelista Secure Shell.

On tavallista (ja tuotantopalveluissa hyvä käytäntö), että useammalla kuin yhdellä henkilöllä on pääsy VM:ään. Seuraava menettely on yksi useista tavoista toteuttaa tämä. Luomme uuden käyttäjän ja annamme pääsyn kyseiselle käyttäjälle yhdelle henkilölle.

Luo uusi käyttäjä

  1. Yhdistä VM:ään oletuskäyttäjänä. Tällä käyttäjällä on pääkäyttäjäoikeudet (sudo).

  2. Luo uusi käyttäjä. Katso lisätietoja useradd -manuaalista.

    sudo useradd -m <user>
    

Korvaa <user> käyttäjänimellä, jonka haluat luoda

Käyttäjä on nyt luotu VM:ään, mutta kenelläkään ei vielä ole pääsyä siihen. Jotta voimme antaa tälle käyttäjälle pääsyn, meidän täytyy määrittää tämän tilin Authorized Keys.

Määritä Authorized keys

Ennen kuin aloitat, tarvitset julkisen SSH-avaimen. Tämän julkisen avaimen täytyy olla sen uuden henkilön luoma, jolle annetaan pääsy tähän VM:ään. Kun SSH-avainpari luodaan, syntyy kaksi avainta: julkinen SSH-avain ja yksityinen avain. Julkinen avain voidaan julkaista avoimesti koko maailmalle; esimerkiksi GitHub julkaisee kaikkien käyttäjiensä avaimet. Sen sijaan yksityistä avainta ei saa koskaan jakaa kenellekään, eikä sen pitäisi poistua tietokoneelta, jolla se luotiin.

Luo SSH-avainpari

On suositeltavaa luoda uusi SSH-avainpari jokaista käyttäjää ja palvelua kohden. Näin mahdollisen yksityisen avaimen vuotaessa vahinko rajoittuu kyseiseen käyttäjään kyseisessä palvelussa. Jos käytät samaa avainta jokaisessa VM:ssä, kaikki niistä voivat vaarantua ja ne täytyy mahdollisesti luoda uudelleen. Linuxissa ja Macissa voit luoda uuden yksityisen/julkisen avainparin näin:

$ ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ubuntu/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/ubuntu/.ssh/id_rsa
Your public key has been saved in /home/ubuntu/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:9MKfQAUs+b2tmpXjqsa0DinzFbW+9qdpFAPYKh4P1i8 ubuntu@ab-tests
The key's randomart image is:
+---[RSA 3072]----+
|       =...      |
|      + +.       |
|     . ++o       |
|    = o=.o+      |
|   o =..S .=     |
|    ..Eo.+oo.    |
|  o oo.o..*.     |
|   + o+ .=oo.    |
|    .ooo===o     |
+----[SHA256]-----+

Yllä oleva esimerkki loi kaksi tiedostoa: id_rsa, joka on yksityinen avain, ja id_rsa.pub, joka on julkinen avain. Viitteeksi: julkinen SSH-avain näyttää tältä:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCoQ9S7V+CufAgwoehnf2TqsJ9LTsu8pUA3FgpS2mdVwcMcTs++8P5sQcXHLtDmNLpWN4k7NQgxaY1oXy5e25x/4VhXaJXWEt3luSw+Phv/PB2+aGLvqCUirsLTAD2r7ieMhd/pcVf/HlhNUQgnO1mupdbDyqZoGD/uCcJiYav8i/V7nJWJouHA8yq31XS2yqXp9m3VC7UZZHzUsVJA9Us5YqF0hKYeaGruIHR2bwoDF9ZFMss5t6/pzxMljU/ccYwvvRDdI7WX4o4+zLuZ6RWvsU6LGbbb0pQdB72tlV41fSefwFsk4JRdKbyV3Xjf25pV4IXOTcqhy+4JTB/jXxrF

Yllä oleva avain on Linus Torvaldin julkinen SSH-avain GitHubissa

Avainten lisääminen tiedostoon authorized_keys

Kun uusi henkilö on lähettänyt sinulle julkisen avaimen, sinun täytyy kopioida se palvelimelle ja lisätä se authorized_keys-”tietokanta”-tiedostoon:

  1. Lataa julkisen avaimen tiedosto palveluun. Linux- tai Mac-koneelta voit käyttää SCP:tä (Secure copy protocol):

    scp id_rsa.pub <default_user>@<floating_ip>:
    

    Huomaa: <default_user> on edelleen sama kuin näköistiedoston dokumentaatiossa

  2. Varmista, että erityinen SSH-määrityshakemisto on olemassa:

    mkdir -p ~<user>/.ssh
    

    Jälleen kerran korvaa <user> juuri luomallasi käyttäjänimellä. Esimerkiksi käyttäjälle pepe komento olisi: mkdir -p ~pepe/.ssh.

  3. Tee varmuuskopio tiedostosta authorized_keys (tämä on valinnaista mutta suositeltavaa):

    cp ~<user>/.ssh/authorized_keys ~<user>/.ssh/authorized_keys.$(date +%s)
    
  4. Lisää julkinen avain tiedostoon authorized_keys:

    cat id_rs.pub >> ~<user>/.ssh/authorized_keys
    
    1. Varmista, että oikeudet ovat oikein:

    chmod 700 ~<user>/.ssh
    chmod 600 ~<user>/.ssh/authorized_keys
    
  5. Tarkista lopuksi, että tiedosto authorized_keys näyttää oikealta siten, että kullakin rivillä on yksi julkinen avain.

Uusi henkilö voi nyt seurata ohjetta yhdistäminen VM:ään. Komennon (Linuxissa ja Macissa) pitäisi olla suunnilleen seuraavanlainen:

ssh -i id_rsa <user>@<floating_ip>

Anna samalle käyttäjälle pääsy useilla julkisilla avaimilla

Voi olla hyvä käytäntö antaa samalle käyttäjälle samassa VM:ssä pääsy useammalla kuin yhdellä SSH-avainparilla. Esimerkiksi jos samalla henkilöllä on useita laitteita, jokaisella laitteella on eri yksityinen avain, ja jos jokin laitteista katoaa, vain yksi avaimista täytyy poistaa tiedostosta authorized_keys. Tässä käyttötapauksessa on mahdollista käyttää työkalua ssh-copy-id. Tämä työkalu toimii vain, jos sinulla on jo pääsy kyseiselle käyttäjälle kyseisessä VM:ssä.

ssh-copy-id -i ~/.ssh/id_rsa.pub <user>@<floating_ip>

Tiedosto ~/.ssh/id_rsa.pub on uusi lisättävä SSH-avain.

Älä anna samaa käyttäjänimeä eri henkilöille

Ei ole hyvä käytäntö antaa eri henkilöille pääsyä samalla käyttäjätunnuksella. Tämä johtuu siitä, että silloin on lähes mahdotonta auditoida, kuka yhdisti VM:ään ja milloin.

Suomenkielinen tekoälykäännös

Sisällössä voi esiintyä virheellistä tietoa tekoälykäännöksestä johtuen.

Klikkaa tästä antaaksesi palautetta