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 pannakse tähele Windows-ile ja Unix-põhistele platvormitele, ehk MacOS ja Linux.

Windows

Veenduge, et teil on Git arvutisse alla tõmmatud! Selleks avage Start Menu ja kontrollige, kas teil on olemas kas kaust "Git" või programm "Git Bash". Kui mõlemad on puudu, siis Git-i saab alla laadida siit: https://gitforwindows.org/

  • Käivitage programm Git Bash

  • Programmi käivitamisel avaneb konsool. 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 avage PowerShell admini õigustega. Selleks tehke right-click Windows ikoonile teie taskbar-is (alumine riba). Jooksutage järgmised käsud käsureal:

Get-Service -Name ssh-agent | Set-Service -StartupType Manual
Start-Service ssh-agent
  • Nüüd võib PowerShell-i kinni panna. Avage see uuesti, kuid ilma admin õigusteta (leiate selle sealt, kust enne leidsite admini õigustega). Käsureal jooksutage järgmine käsk (NB! Asendage käsus faili teekond eelnevalt teile genereeritud SSH võtme teekonnaga!):

ssh-add c:/Users/YOU/.ssh/id_ed25519
  • Minge sinna kausta, kuhu genereeriti teile SSH võti. Kaustas peab olema kaks faili: id_keynamehere ja id_keynamehere.pub. Avage .pub fail ja kopeerige selle sisu.

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

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