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
- Terminált megnyitjuk
- Generálunk egy SSH kulcsot
ssh-keygen -t rsa -b 4096
- Alapértelmezett helyre mentjük
- 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.
- Elindítjuk az agent-et ha még nem ment volna
$ eval "$(ssh-agent -s)"
Agent pid 59566
- 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
- Git Bash-t megnyitjuk
- Generálunk egy kulcsot
ssh-keygen -t rsa -b 4096
- Elmentjük az alapértelmezett helyre
- Jelszó adunk hozzá ha szeretnénk
Hozzá adjuk az SSH agent-ünkhöz
- Elindítjuk az agent-et ha még nem ment volna
$ eval $(ssh-agent -s)
> Agent pid 59566
- 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