Zdalne repozytorium Git na Mikrusie i innych VPS

Najlepiej dla każdego projektu robić usera. Wtedy gdy musisz udostępnić komuś swoje repo udostępniasz tylko tego jednego usera, a nie usera, na którym są wszystkie repo tu już wybór dla Ciebie.

VPS

Wszystkie projekty na jednym userze

git init --bare project1/project1.git

git init --bare project2/project2.git

git init --bare project3/project3.git

Moja propozycja zrobić oddzielnego usera na każdy projekt.

sudo ./noobs2/noobs/actions/chce_usera.sh

userproject1
pass1

su userproject1
git init --bare project1.git

Klient

lepiej używać kluczy, a nie hasła więc

https://www.notion.so/U-ywaj-kluczy-SSH-219e41e344a74dd9a054c343f774a312

Kroki opcjonalne

Tworzysz klucz:

ssh-keygen -t rsa -b 4096 -C project1 -f ~/.ssh/project1

Kopiujesz na VPSa tak:

ssh-copy-id -i ~/.ssh/project1 userproject1@srvX.mikr.us -p NUMER_PORTU_SSH

lub ręcznie dodajesz do ~/.ssh/authorized_keys

tworzysz ssh config, aby łatwiej korzystać, nie myśleć o portach userach itd.

nano .ssh/config
1
2
3
4
5
Host project1
   HostName srvX.mikr.us
   User userproject1
   Port NUMER_PORTU_SSH
   IdentityFile ~/.ssh/project1

Szybsze rozwiązanie

Wszystkie te kroki dla klienta można zastąpić tym jednym poleceniem

./noobs/actions/chce_ssh_config.sh userproject1@srvX.mikr.us --port NUMER_PORTU_SSH

to Ci wygeneruje ssh config z hostem typu:

userproject1-srvX.mikr.us-NUMER_PORTU_SSH

więc trochę nie praktycznie, bo trzeba wpisywać

ssh userproject1-srvX.mikr.us-NUMER_PORTU_SSH
wiem, że można

ssh userproject1 [Tab] i pokaże resztę, ale to nadal upierdliwe więc jak w przykładzie ręcznym

nano .ssh/config

i zamienić:

Host userproject1-srvX.mikr.us-NUMER_PORTU_SSH

na

Host project1

czyli dostęp do usera projektu po ssh wygląda tak

ssh project1

a git do clonowania itp. itd.

project1:project1/project1.git
Kilka projektów każdy na oddzielnym userze

to trzeba mieć do każdego ssh config
i używać tak

1
2
3
project1:project1/project1.git
project2:project2/project2.git
project3:project3/project3.git
Wariant gdy wszystko na jednym userze

Tworzysz tylko jeden ssh config

./noobs/actions/chce_ssh_config.sh usermikrus@srvX.mikr.us --port NUMER_PORTU_SSH
nano .ssh/config

i zamienić:

Host usermikrus-srvX.mikr.us-NUMER_PORTU_SSH

na wygodniejszy np.

Host mikrus

i używać tak

1
2
3
mikrus:project1/project1.git
mikrus:project2/project2.git
mikrus:project3/project3.git

jak robisz tylko dla siebie to na jednym userze będzie wygodniej i szybciej

dla zespołu lub gdy klientowi chcesz przekazać dostęp do ssh i git to wariant wiele userów

Uwaga! jak przekazujesz obcej osobie to trzeba zmodyfikować trochę ten wariant, bo chce_usera.sh robi usera z sudo a do oddania lepszy byłby zwykły user + najlepiej ssh jail, ale to już szeroki temat

Edit

Pub: 09 Apr 2022 12:55 UTC

Edit: 09 Apr 2022 12:55 UTC

Views: 58