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ä
-
Yhdistä VM:ään oletuskäyttäjänä. Tällä käyttäjällä on pääkäyttäjäoikeudet (
sudo). -
Luo uusi käyttäjä. Katso lisätietoja useradd -manuaalista.
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:
-
Lataa julkisen avaimen tiedosto palveluun. Linux- tai Mac-koneelta voit käyttää
SCP:tä (Secure copy protocol):Huomaa:
<default_user>on edelleen sama kuin näköistiedoston dokumentaatiossa -
Varmista, että erityinen SSH-määrityshakemisto on olemassa:
Jälleen kerran korvaa
<user>juuri luomallasi käyttäjänimellä. Esimerkiksi käyttäjällepepekomento olisi:mkdir -p ~pepe/.ssh. -
Tee varmuuskopio tiedostosta
authorized_keys(tämä on valinnaista mutta suositeltavaa): -
Lisää julkinen avain tiedostoon
1. Varmista, että oikeudet ovat oikein:authorized_keys: -
Tarkista lopuksi, että tiedosto
authorized_keysnä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:
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ä.
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.