Udostępnienie repozytoriów git na Debianie

W moim przypadku udostępnianie repozytoriów rozpocząłem od instalacji pełnego pakietu gita z paczki git-all: apt-get install git-all
Następnie na potrzeby serwera utworzyłem użytkownika git wraz z koniecznymi katalogami umożliwiającymi identyfikację na podstawie kluczy:

adduser git
su git
cd
mkdir .ssh
chmod 700 .ssh
touch .ssh/authorized_keys
chmod 600 .ssh/authorized_keys

Po utworzeniu struktury katalogów użytkownika git, dodajemy nasze klucze publiczne (jeśli je posiadamy, jeśli ich jeszcze nie mamy generujemy je) do pliku .ssh/authorized_keys.

np.:

cat .ssh/id_rsa.pub >> /home/git/.ssh/authorized_keys

Teraz już możemy logować się na usera git za pomocą naszych kluczy.

Tworzymy repozytorium w utworzonym wcześniej katalogu /opt/git. Repozytorium zewnętrzne tworzymy podobnie jak lokalne, dodając jedynie przełącznik –bare
np.:

mkdir symfony.git
cd symfony.git
git init –bare

Teraz już na podstawie klucza możemy pobrać repozytorium ze zdalnego serwera.
np.:

git clone ssh://git@serwergita.com.costam:/opt/git/symfony.git

Jeśli serwer ssh nadaje na innym porcie, np.: 14140

git clone ssh://git@serwergita.com.costam:14140/opt/git/symfony.git

Jeśli mamy repozytorium na którym pracowaliśmy wcześniej tylko lokalnie, możemy je po odpowiednim spreparowaniu udostępnić na serwerze dla pozostałych użytkowników.
Repozytorium przygotowujemy w następujący sposób:

git clone –bare projekt_lokaly projekt.git

Teraz przenosimy projekt na nasz serwer docelowy, z którego udostępniać będziemy repozytorium pozostałym użytkownikom.

scp -r projekt.git git@serwergita.com.costam:/opt/git

Jeśli serwer ssh nadaje na innym porcie, warto wcześniej w pliku .ssh/config ustawić wcześniej właściwe parametry. W moim przypadku wygląda to następująco:

Host serwergita.com.costam
HostName serwergita.com.costam
Port 14140
User git

Leave a Reply