SSH võtmete genereerimine ja kasutamine

Selleks, et turvaliselt ühendada ennast serveritega ja erinevate teenustega, mõeldi välja protokoll, mis sai endale nimeks SSH.

SSH võimaldab ilma paroolita ühenduda teenustega, mis toetavad seda, näiteks GitLab, GitHub, Sourcehut ja teised. Niimodi saab rahulikult push-ida enda koodi GitLab-i ilma tõkestusteta.

SSH võtme loomine

SSH võtme loomise protsess natukene eristub vastavalt sellele, mis platvormi kasutatakse. Siin on juhendid Windows-ile ja Unix-põhistele platvormitele, ehk MacOS ja Linux.

Windows

Git-i paigaldamine

Kontrolli, et sul on Git alla laetud avades Start Menu ja otsides Git. Kui sa leiad Git kausta, siis see ongi paigaldatud. Kui see veel paigaldatud pole, siis laadi see alla siit: https://gitforwindows.org/

SSH võtme genereerimine

  1. Ava Windows Terminal, PowerShell või Git Bash.

  2. Käsureal jooksuta järgmine käsk (NB! Asenda your_email@example.com enda isikliku/ülikooli e-posti aadressiga):

ssh-keygen -t ed25519 -C "your_email@example.com"
  1. Järgmiseks küsitakse, kuhu soovid võtme salvestada. Vaikimisi on salvestuskohaks C:\Users\TEIE_KASUTAJA\.ssh\. (seda näeb ka käsureal kuvatud teate sulgudes). Soovituslik on vastusena sisestada:

    C:\Users\USER_NAME\.ssh\keynamehere
nt: C:\Users\Mati\.ssh\id_game_project

kus keynamehere asemele pannakse teenuse nimi, mille jaoks võti genereeriti. Lisaks on vaja muuta USER_NAME enda kasutajanimeks.

  1. Kui küsitakse parooli, võib selle jätta tühjaks (vajutades Enter), kuid turvalisuse mõttes on soovitatav parool lisada. Seda parooli tuleb edaspidi sisestada siis, kui lisad enda võtme ssh-agent-ile (sellest räägitakse hiljem).

NB! Pane tähele, kuhu fail salvestati, sest seda on hiljem vaja! Tavaliselt luuakse kaks faili: keynamehere (privaatvõti) ja keynamehere.pub (avalik võti).

SSH-agent-i seadistamine

Kui oled varasemalt SSH võtmeid kasutanud, siis on sul tõenäoliselt SSH-agent juba käivitatud. Kui ei, siis tuleb see käivitada. Selleks:

  • Ava PowerShell admini õigustega (run as administrator). Jooksuta järgmised käsud käsureal:

Get-Service -Name ssh-agent | Set-Service -StartupType Manual
Start-Service ssh-agent
  1. Ava PowerShell ilma admin õigusteta.

  2. Jooksuta käsureal järgmine käsk: (NB! Asenda käsus faili teekond eelnevalt genereeritud SSH võtme teekonna ja faili nimega!):

ssh-add c:/Users/YOU/.ssh/keynamehere

3. Kopeeri genereeritud *.pub* faili sisu. Fail on salvestatud eelnevalt määratud kausta. Selleks, et kiiresti saada .pub faili sisu, võib käsureal jooksutada järgmise käsu ning kopeerida kogu väljundi:

Get-Content c:/Users/YOU/.ssh/keynamehere.pub

Kõige olulisemad sammud on tehtud! Liigu edasi alampunkti "Lisame võtme GitLab-i".

MacOS

Veenduge, et teil on XCode Developer Tools alla tõmmatud! Kontrollimiseks avage terminal (kirjutage "Terminal" Spotlight-i) ja kirjutage

clang --version

Kui konsool annab vea, siis kopeerige järgmine käsk ning jooksutage seda käsureal:

xcode-select --install

Teile avaneb uus aken, kus küsitakse, kas tahate alla tõmmata "developer tools". Vajutage "install".

MacOS / Unix / Linux

  • Avage Terminal

  • Käsureal tuleb jooksutada järgmine käsk (NB! Asendage your_email@example.com teie poolt valitud emailiga. See võib olla kas ülikooli või isiklik email.)

ssh-keygen -t ed25519 -C "your_email@example.com"

Vajutage Enter.

Süsteem hakkab genereerima SSH võtit. Kui teie poolt küsitakse, millisesse faili tahate salvestada oma võtme, siis vajutage Enter. Üldjuhul on fail nimetatud järgmiselt:

id_keynamehere

kus keynamehere asemele pannakse teenuse nimi, mille jaoks võti genereeriti.

NB! Pange omale kirja teekond, kuhu faili on teie võti salvestatud! Seda teed tuleb kasutada hiljem.

  • Järgmisena palutakse teil sisetada parool. Seda parooli tuleb teil edaspidi sisestada siis, kui lisate enda võtme ssh-agent-ile (sellest räägitakse hiljem). Parooli võib tühjaks jätta mugavuse pärast, kuid see on ei ole soovituslik turvalisuse mõttes. Sisestage parool ja vajutage Enter.

  • Nüüd jooksutage järgmine käsk käsureal. (NB! Juhul, kui esimene käsk ei käivitunud, antakse teile teised variandid. Selline protsess sõltub teie operatsioonisüsteemist).

eval "$(ssh-agent -s)"
# If previous one does not work
sudo eval "$(ssh-agent -s)"
  • Käsureal jooksutage järgmine käsk (NB! Asendage käsus faili teekond eelnevalt teile genereeritud SSH võtme teekonnaga!):

# Linux
ssh-add ~/.ssh/id_ed25519
# MacOS
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
  • Teil tuleb kopeerida genereeritud .pub faili sisu. Fail on salvestatud teie määratud kausta. Selleks, et kiiresti saada .pub faili sisu,jooksutage järgmine käsk käsureal ning kopeerige väljund:

cat ~/.ssh/id_ed25519.pub

Kõige olulisemad sammud on tehtud! Liikuge edasi alampunkti "Lisame võtme GitLab-i", et kasutada enda võtit GitLab-is.

Lisame võtme GitLab-i

  1. Minge veebilehele https://gitlab.cs.taltech.ee. Vasakult poolt leiate menüü. Vajutage enda profiilile ning valige Preferences.

../../_images/gitlab_ssh_pref1.png
  1. Valige SSH Keys

../../_images/gitlab_ssh_set1.png
  1. Valige Add new key

../../_images/gitlab_ssh_add_smol1.png
  1. Kopeeriga "Key" alla .pub faili sisu. Nimetage enda võti, näiteks "Minu arvuti" ja vajutage Add key

../../_images/gitlab_ssh_add_full1.png

Olete lisanud oma esimese SSH võtme GitLab-i!

Allikad

  1. GitLab

  2. GitHub