SSH-avaimien määrittely GitHub-repon asetuksiin
Jotta GitHub-palvelin pääsee ottamaan SSH-yhteyden tuotantopalvelimen virkaa toimittavalle neutroni-palvelimelle, on sitä varten luotava ja määriteltävä SSH-avaimet. Nämä avaimet eivät ole samat, kuin aikaisemmin luodut SSH-avaimet, koska seuraavaksi toteutettavassa toimintopolussa SSH-yhteyden suunta on eri. Toisin sanoen syötämme GitHub-palveluun yksityisen avaimen, jolla se pystyy ottamaan turvallisen yhteyden neutroni-palvelimelle.
-
Luodaan ensiksi tarvittavat SSH-avaimet. Suorita seuraava komento neutronin komentorivillä.
ssh-keygen -t rsa -b 4096 -f ~/.ssh/github-actions
Älä määrittele salasanaa, vaan jätä kumpikin kohta tyhjäksi painamalla Enter-näppäintä. Tämä siksi, että GitHub Actions -työkulussa tuota salasanaa ei pääse syöttämään manuaalisesti. Komennon suorituksen jälkeen sinulta löytyy nyt julkinen avain (~/.ssh/github-actions.pub) ja yksityinen avain (~/.ssh/github-actions).
-
Lisätään julkinen avain niiden avaimien joukkoon, jotka on hyväksytty käytettäväksi kirjautumisessa.
cat ~/.ssh/github-actions.pub >> ~/.ssh/authorized_keys
Tämä komento lisää julkisen avaimen authorized_keys-tiedoston loppuun. Huomaa, että komennossa kuuluu olla kaksi >-merkkiä. Jos suoritat komennon yhdellä merkillä, niin authorized_keys-tiedoston sisältö tyhjenee ja tilalle tulee github-actions.pub-tiedoston sisältö.
-
Lisätään yksityinen avain GitHub-repon asetuksissa salattuihin tietoihin. Kopioidaan ensin yksityinen avain leikepöydälle. Suorita seuraava komento ja kopioi komennon tulos leikepöydälle. Kopioitava alue alkaa rivillä
-----BEGIN OPENSSH PRIVATE KEY-----
ja päättyy riviin-----END OPENSSH PRIVATE KEY-----
.cat ~/.ssh/github-actions
Avaa seuraavaksi GitHubissa repon asetukset, klikkaamalla Settings-linkkiä, joka on linkkirivin oikeassa reunassa.
Valitse oikean reunan valikosta Secrets and variables -otsikon alta Actions-kohta.
Klikkaa sivun yläreunassa olevaa New repository secret-nappia.
Kirjoita Name-kentän arvoksi PRIVATE_KEY, liitä Value-kenttään tämän vaiheen alussa leikepöydälle kopioimasi yksityinen avain ja paina lopuksi Add Secret -nappia.
-
Jotta SSH-yhteys ei jämähdä siihen, että avattava yhteys ei ole luotettu, on myös known_host-tiedoston sisältö selvitettävä. Suorita seuraava komento ja kopioi komennon tulos leikepöydälle.
ssh-keyscan neutroni.hayo.fi
Lisää uusi salattu tieto painamalla Actions secrets-sivulla New repository secret -nappia. Kirjoita Name-kentän arvoksi KNOWN_HOSTS ja liitä Value-kentään arvoksi edellä leikepöydälle kopiomasi ssh-keyscan -komennon tulos. Paina lopuksi Add secret -nappia.
Tämän jälkeen sinulla näkyy Repository secrets -listalla kaksi salattua tietoa. Pääset Kynä-ikonia painamalla päivittämään salatun tiedon uuteen. Huomaa kuitenkin, että GitHub ei näytä salattuna tallennettujen tietojen sisältöjä.
-
Viimeisenä vaiheena on vielä pieni muutos Deployer-asetuksiin. GitHub-palvelussa julkaisuskripti suoritetaan eri käyttäjän alaisuudessa, mille se tullaan lopulta kopioimaan neutroni-palvelimella. Jotta Deployer osaa luoda SSH-yhteyden oikealla käyttäjällä, lisätään se tieto vielä määrityksiin. Muokkaa projektin juuressa (~/public_html/perhekalenteri-dev) olevaa deploy.php-tiedostoa. Päivitä tiedostossa Host-määrite seuraavanlaiseksi. Vaihda neutroni-tunnus-tekstin paikalle oma neutroni-tunnukseksi. Jos tunnuksesi olisi koodaaja niin laita se neutroni-tunnus-tekstin paikalle.
// Hosts host('neutroni.hayo.fi') ->user('neutroni-tunnus') ->set('deploy_path', '~/public_html/{{application}}');
Vie lisäksi tämä muutos GitHub-repoon komennoilla:
cd ~/public_html/perhekalenteri-dev git add . git commit -m "deploy.php-tiedoston host päivitetty" git push