Clientii Subversion utilizeaza protocolul SSH pentru a accesa repozitory pe hostx. Un cont de gazduire shared are doar o autentificare SSH, care poate fi o problema.
Sa presupunem ca nu doriti sa comunicat parola contului dvs. cu alti utilizatori doar pentru a putea accesa unele repository, in acest caz au acces total la contul dvs. iar commiturile la anumite repository se fac de pe acelasi user si nu puteti verifica care dintre progamatorii care au acces la cont au facut modificari.
Solutia este de a crea si a implementa o pereche separată de chei SSH pentru fiecare utilizator. Deoarece perechile de chei SSH nu necesită parole, utilizatorii pot accesa repository-urile dvs. folosind clienti Subversion. In plus, puteti revoca usor accesul pentru un anumit utilizator fara a afecta alti utilizatori.
Pasii principali pentru configurarea accesului Subversion cu mai multi utilizatori sunt:
Se creaza pentru fiecare utilizator o pereche de chei SSH si se trimite cheia publica la proprietarul contului. Proprietarul adauga cheia publică la fișierul ~ / .ssh / author_keys in contul de pe server.
Fiecare utilizator configureaza un client Subversion sa utilizeze cheia privata pentru a accesrea unui repository din contul dvs.
Setare SVN tunneling
Puteti configura SVN tunneling. SSH tunneling va permite sa restrictionați accesul shell pe o cheie pe baza de cheie. In plus, puteti atribui numele de utilizator SVN pentru a urmari modificările efectuate de utilizatori individual.
To set up SVN tunneling, follow these steps:
- Autentificati-va la contul dvs. folosind SSH.
- Deschideti fisierul ~/.ssh/authorized_keys intrun editor text.
- Localizati cheile ce corespund utilizatorilor caruia doriti sa le restrictionati accesul .
- Adauvati urmatorul text la inceputul datelelor din cheie:
command="svnserve -t --tunnel-user=SVNNAME -r /home/USERNAME/REPOSITORY",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty
- inlocuiti SVNNAME cu numele de utilizator SVN care doriti sa-l alocati utilizatorului. Toate commit-urile care le va face acest user ii vor fi asociate
- inlocuiti USERNAME cu numele utilizatorului dvs. cPanel, si inlocuiti REPOSITORY cu directorul unde se afla repository-ul dorit. Optiunea -r seteaza directorul virtual root pentru acel utilizator. Astfel se previne accesul unor utilizatori in alte directoare care nu apartin de acel repository.
Exemplu de setare SVN tunneling pentru userul developer1
command="svnserve -t --tunnel-user=developer1 -r /home/username/myrepo",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty ssh-rsa AAsaAPi1T…bdrU29eQ user@localhost
-
Salvati modificarile pentru ~/.ssh/authorized_keys file. Utilizatori pot accesa acum repository-urile fara drept total pe alte directoare
Pentru a lista un repository.svn list svn+ssh://username@example.com/project
