SSH-avaimien luonti ja lisääminen

Jotta kloonatun GitHub-repon käsittely paikallisesti olisi jouhevaa, kannattaa luoda sitä varten omat SSH-avaimet, jotka liitetään osaksi GitHub-tunnusta.

SSH-avaimien luominen

  1. Avaa SSH-yhteys neutroni-palvelimelle omilla tunnuksillasi. Tämä onnistuu esimerkiksi käyttämälläsi pääteohjelmalla tai vaikka komennolla ssh tunnus@neutroni.hayo.fi.

  2. Luo uusi SSH-avain komennolla

    ssh-keygen -t ed25519 -f ~/.ssh/github
    

    Tämä kysyy sinulta kahteen kertaan avaimelle tallennettavan salasanan. Käytön helpottamiseksi salasanan voi jättää tyhjäksi eli voit painaa Enter-näppäintä kummankin kysymyksen kohdalla. Tämän jälkeen ruudulle tulostuu seuraavankaltainen tieto, joka kertoo minne julkinen avain (github.pub) ja yksityinen avain (github) on tallennettu sekä siihen liittyvän "sormenjäljen".

    Generating public/private ed25519 key pair.
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /home/koodaaja/.ssh/github.
    Your public key has been saved in /home/koodaaja/.ssh/github.pub.
    The key fingerprint is:
    SHA256:d9vgxKdE1C+MvStN7CM2vDylek5XkUBoBVShVY0gpT8 koodaaja@neutroni
    The key's randomart image is:
    +--[ED25519 256]--+
    |          o+XXoo.|
    |           *o + o|
    |          o..+ + |
    |           +. + o|
    |        S . E..o.|
    |         . = B=. |
    |           .=*o. |
    |           oX.=  |
    |          .=+* . |
    +----[SHA256]-----+
    

SSH-avaimen lisääminen GitHub-palveluun

Seuraavaksi liitetään SSH-avain osaksi GitHub-tunnusta. Huomaa, että seuraavat vaiheet antavat käyttöoikeuden GitHub-palveluun ainoastaan neutroni-palvelimen käyttäjälle. Jos haluat esimerkiksi oman paikallisen työasemasi käyttäytyvän samalla tavalla, niin sinun täytyy luoda vastaavanlaiset SSH-avaimen myös sille.

  1. Tarvitset edellä luomasi SSH-avainparin julkista avainta, jonka liitämme osaksi omaa GitHub-tunnustamme. Saat julkisen avaimen näkyville komennolla

    cat ~/.ssh/github.pub
    

    Komennon tulostama sisältö on seuraavanlainen. Kopioi komennon tulostama rivi leikepöydälle, älä kopioi alla olevaa esimerkkiä, se ei toimi.

    ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBaNMTbtiW9ybUK52raIDHKjQKglVqD6mbdPtPbMhmqy koodaaja@neutroni
    
  2. Klikkaa GitHub-palvelussa oikeassa yläkulmassa olevaa profiilikuvaketta ja valitse avautuvasta valikosta Settings-vaihtoehto.

    Profiilivalikon Settings-valinta

    Valitse oikean reunan valikosta kohta SSH and GPG keys.

    Settings-sivun SSH and GPG keys -valinta

    Klikkaa SSH keys -kohdassa New SSH key-nappia.

    Uuden SSH-avaimen lisääminen

    Kirjoita Title-kenttään teksti tunnus@neutroni, liitä Key-kenttään leikepöydälle kopioimasi julkinen avain ja paina lopuksi Add SSH key-nappia.

    Lisättävän SSH-avaimen tiedot

    Tämän jälkeen sinulla on SSH-avain tallennettu GitHub-tunnukseesi. Pystyt poistamaan sen SSH and GPG keys -sivulta, kun et sitä enää käytä.

    GitHub-tunnukseen lisätyt SSH-avaimet

SSH-avaimen sijainti

Oletuksena SSH-ohjelma etsii tietyn nimisiä avaimia .ssh-kansion alta. Edellä nimesimme SSH-avaimen tästä poikkeavasti, joten SSH-ohjelmalle tulee vielä kertoa, mistä se löytää SSH-avaimen yhteyden muodostamisen yhteydessä. Anna seuraava komento neutronin komentorivillä.

tee -a ~/.ssh/config << END
Host github.com
  HostName github.com
  IdentityFile ~/.ssh/github
END

SSH-yhteyden testaaminen

Lopuksi kannataa vielä testata, että SSH-yhteys onnistuu juuri lisäämälläsi SSH-avaimella. Tämä tapahtuu komennolla

ssh -T git@github.com

Tämä testaa, onnistuuko SSH-yhteyden muodostus GitHub-palvelimelle. Jos kaikki toimii, tulostuu sinulle seuraavanlainen teksti.

Hi fronttikoodaaja! You've successfully authenticated, but GitHub does not provide shell access.

Huomaa, että tässä materiaalissa näkyvät tunnisteet on vaihdettu, ne eivät toimi.