Git je jedan od najpoznatijih i najčešće korišćenih sistema za kontrolu verzija fajlova. Pomoću Git-a veći broj korisnika može istovremeno raditi na istoj datoteci bez izazivanja zabune i haosa u njenom sadržaju.
Za udaljeni repozitorijum može se koristiti repozitorijum sa jedne od sledećih platformi: GitHub.com, Bitbucket.org, GitLab.com i drugi.
Ako želite da klonirate Git repozitorijum koji se nalazi na udaljenom serveru preko SSH-a, potrebno je generisati par SSH ključeva putem cPanel-a. Zatim je potrebno dodati nekoliko linija koda u konfiguracionoj datoteci /home/cpuser/.ssh/config.
1. Generisanje SSH ključeva (javni i privatni)
Generisanje SSH ključeva može se obaviti ili putem cPanel-a » SSH pristup » Upravljanje SSH ključevima ili prijavljivanjem na hosting nalog putem SSH-a.
Ako SSH ključevi budu generisani putem menija Upravljanje SSH ključevima u cPanel-u i ime privatnog ključa glasi npr. githubkey, umesto podrazumevanog id_rsa, biće potrebno naglasiti to u /home/cpuser/.ssh/config datoteci.
Kako biste generisali par ključeva putem SSH-a, ispunite sledeću komandu:
cpuser@mysupersite.com [~]# ssh-keygen -t rsa -C “my@mail.com”
Generating public/private rsa key pair.
my@mail.com – imejl adresa naloga na GitHub, Bitbucket ili GitLab platformi;
Enter file in which to save the key (/home/cpuser/.ssh/id_rsa):
Nije potrebno ništa upisivati. Pritisnite Enter. U navedeni direktorijum (home/cpuser/.ssh) će biti kreirana datoteka i u nju snimljen privatni ključ (id_rsa).
Enter passphrase (empty for no passphrase):
Ako ćete klonirati Git repozitorijum putem SSH-a, unesite lozinku Vašeg privatnog ključa i pritisnite Enter.
Enter same passphrase again:
Ponovo unesite lozinku i pritisnite Enter. Prilikom povezivanja putem SSH-a na udaljeni repozitorijum, ova lozinka će Vam biti neophodna.
Ako ste uspešno generisali ključeve, dobićete sledeće obaveštenje:
Your identification has been saved in /home/cpuser/.ssh/id_rsa. Your public key has been saved in /home/cpuser/.ssh/id_rsa.pub. The key fingerprint is: 20:09:75:52:4b:08:01:a8:e2:5e:z6:34:86:42:56:06 my@mail.com The key's randomart image is: +--[ RSA 2048]----+ |oE=+oo+ | |. +.= . | |. o o o | |oo . . | |* . S | |o= o | |= + | | o | | | +-----------------+
Oba ključa se nalaze u direktorijumu: /home/cpuser/.ssh
Javni ključ koji treba dodati na GitHub/Bitbucket/GitLab možete pronaći u fajlu: /home/cpuser/.ssh/id_rsa.pub.
Sadržaj ove datoteke može se pregledati kroz Menadžer fajlova u cPanel-u – kada ga otvorite za uređivanje (Edit).
2. Dodavanje javnog ključa na GitHub / Bitbucket / GitLab
Iz generisanog para ključeva prenesite javni ključ (id_rsa.pub) na Vaš nalog na GitHub-u, Bitbucket-u, GitLab-u. Privatni ključ mora ostati na hosting nalogu i nije proporučljivo deliti ga.
U podešavanjima GitHub naloga izaberite Settings »SSH and GPG keys» New SSH key, upišite javni ključ i izaberite Add SSH key.
U podešavanjima (Settings) Vašeg naloga na Bitbucket izaberite SSH keys » Add key, upišite javni ključ i sačuvajte ga sa Add key.
U podešavanjima Vašeg naloga (User Settings) na GitLab izaberite SSH keys » Add key, upišite javni ključ i sačuvajte ga sa Add key.
3. Fajl .ssh/config sa permisijama 600
Pre povezivanja sa udaljenim repozitorijumom, potrebno je izvršiti mala podešavanja u config datoteci.
Ako direktorijum /home/cpuser/.ssh ima druge permisije, postavite ih na 0700.
U ovom /home/cpuser/.ssh direktorijumu kreirajte tekstualnu datoteku pod nazivom config (promenite joj permisije u
Sadržaj config datoteke za GitHub:
Host github.com
User my@mail.com
Hostname ssh.github.com
Port 443
Ako ste privatnom ključu dali naziv koji se razlikuje od id_rsa, upišite sledeće redove:
RSAAuthentication yes
IdentityFile ~/.ssh/githubkey
githubkey – zamenite sa imenom fajla u kojem se nalazi privatni ključ;
Sadržaj config datoteke za Bitbucket:
Host bitbucket.org
User my@mail.com
Hostname altssh.bitbucket.org
Port 443
Ako ste privatnom ključu dali naziv koji se razlikuje od id_rsa, upišite sledeće redove:
RSAAuthentication yes
IdentityFile ~/.ssh/bitbucketkey
bitbucketkey– zamenite sa imenom fajla u kojem se nalazi privatni ključ;
Sadržaj config datoteke za GitLab:
Host gitlab.com
Hostname altssh.gitlab.com
User email@forgitlab.com
Port 443
Ako ste privatnom ključu dali naziv koji se razlikuje od id_rsa, upišite sledeće redove:
RSAAuthentication yes
IdentityFile ~/.ssh/gitlabkey
gitlabkey– zamenite sa imenom fajla u kojem se nalazi privatni ključ;
Ako gornji redovi ne postoje, verovatno ćete dobiti poruku o grešci prilikom pokušaja povezivanja sa udaljenim repozitorijumom.
cpuser@mysupersite.com [~]# git clone git@github.com:myproject/mysupersite.git
ssh: connect to host github.com port 22: Connection refused
fatal: The remote end hung up unexpectedly
Možete proveriti vezu sa udaljenim repozitorijumom i koji SSH ključ će se koristiti uz pomoć sledeće komande:
cpuser@mysupersite.com [~]# ssh -vT git@github.com
git@github.com – možete zameniti odgovarajućim repozitorijumom, na primer git@bitbucket.org ili git@gitlab.com
Ako ste postavili lozinku za SSH ključ, potrebno je upisati ovu lozinku prilikom povezivanja na udaljeni repozitorijum preko SSH-a.
Nakon uspešno završenog prethodnog koraka, možete koristiti Git klijent na hosting nalogu.