Ugrás a lényegre

Alapok és SSH kulcs

Alapok

Hogyan lehet a mi .git mappánkat megosztani a nagyvilággal?

Több módja is van ennek, például akár egy .git mappát is lelehet magunkhoz klónozni.

A git clone <elérési út> parancsot használjuk ahhoz, hogy valahonnan lehúzzunk egy git repo-t.

Ha például csak egy mappára utalunk, aminek a neve awesome_project.git:

$ git clone --bare awesome_project awesome_project.git
Cloning into bare repository 'awesome_project.git'...
done.

Ezt akár kirakhatjuk egy fájlszerverre és onnan megoszthatnánk.

Következő szint, mikor weben keresztül szedjük le a nekünk kellő repo-t. Ilyenkor HTTP protokollt használhatunk, ami hasonló az előzőhöz és olyan, mint mikor egy fájlt töltünk le egy oldalról.

$ git clone https://git.sch.bme.hu/blintmester/git-presentation.git
Cloning into 'git-presentation'...
remote: Enumerating objects: 173, done.
remote: Counting objects: 100% (173/173), done.
remote: Compressing objects: 100% (114/114), done.
remote: Total 173 (delta 65), reused 155 (delta 47), pack-reused 0
Receiving objects: 100% (173/173), 291.34 KiB | 1.22 MiB/s, done.
Resolving deltas: 100% (65/65), done.

Ez szimplán fogja és készít nekünk egy olyan repository-t, mint amit az előzőkben csináltunk kézzel. Lemásolja a .git mappát, majd pedig onnan kiszedi a megfelelő dolgokat a mi work tree-nkbe.

SSH

Másik protokoll amit tudunk használni az az SSH. Ez azért nagyon jó, mert ha ezen keresztül szedünk le, akkor nem kell minden alkalommal a github, gitlab felhasználónkba belépnünk egy repo-n való dolgozáskor.

Ahhoz, hogy ilyet tudjunk csinálni viszont SSH kulcsot kell készítenünk. Ennek annyi a trükkje, hogy rakunk a saját gépünkre egy privát kulcsot és a távoli szerverre egy publikus kulcsot, vagy bárhova ahova szeretnénk. Ezután mikor az adott szerverre felakarunk menni, valamit csinálni ott, akkor előtte a szerver leauthentikál minket és egy kulcs csere után elkezdhetünk vele kommunikálni. Az authentikáció lépése nagy vonalakban:

  • Szerver publikus kulcsal letitkosít valamit és elküldi nekünk
  • Ezt amit elküld csak a privát kulccsal lehet kibontani, ezt mi elvégezzük
  • A kibontott adatok közt lesz egy másik kulcs, mellyel titkosítva elküldjük a szervernek ami kell az authentikációhoz
  • A szerver kibontja, látja hogy minden oké és megtörténik a kulcs csere

Ezután áttérnek egy másik módszerre amihez már mindkét oldalt megvan a megfelelő kulcs és titkosítva küldik egymásnak az adatokat

Nagyon király dolog, mivel gyors, hatékony és nem kell jelszót beírogatni minden művelet közt

Saját SSH kulcs

Linuxon / MacOS-en

  1. Terminált megnyitjuk
  2. Generálunk egy SSH kulcsot
    ssh-keygen -t rsa -b 4096
  3. Alapértelmezett helyre mentjük
  4. Megadunk egy jelszót ha szeretnénk
    Ha valaki megszerzi a privát kulcsunk nem tudja használni a jelszó beírása nélkül

Adjuk hozzá az SSH agent-ünkhöz.

  1. Elindítjuk az agent-et ha még nem ment volna
    $ eval "$(ssh-agent -s)"
    Agent pid 59566
  2. Hozzáadjuk az új kulcsunk
    ssh-add ~/.ssh/id_rsa

Végezetül a publikus kulcsot feltöltjük például githubra

A publikus kulcs helye: ~/ssh/id_rsa.pub

Windowson

  1. Git Bash-t megnyitjuk
  2. Generálunk egy kulcsot
    ssh-keygen -t rsa -b 4096
  3. Elmentjük az alapértelmezett helyre
  4. Jelszó adunk hozzá ha szeretnénk

Hozzá adjuk az SSH agent-ünkhöz

  1. Elindítjuk az agent-et ha még nem ment volna
    $ eval $(ssh-agent -s)
    > Agent pid 59566
  2. Hozzáadjuk az új kulcsunk
    ssh-add ~/.ssh/id_rsa

Végezetül a publikus kulcsot feltöltjük például githubra

A publikus kulcs helye: ~/ssh/id_rsa.pub

Forrás: docs.github.com