Git Clone via Apache vHost

lockdoc

Well-Known Member
Hi,

Ich wuerde gerne anstelle von ssh das http Protokoll benutzen um ein remote git repository auszuchecken. Dazu habe ich nach einer Anleitung den vHost von Apache eingerichtet
Code:
<VirtualHost *:80>
    ServerName   git.devel.mydomain.de
    ServerAdmin  lockdoc@mydomain.de
 
    # ------------- Log Defines
    ErrorLog /var/log/apache/git.devel.mydomain.de-error_log
    CustomLog /var/log/apache/git.devel.mydomain.de-access_log combined
  
    # ------------- Git Environment Variables
    SetEnv GIT_PROJECT_ROOT /var/git/base
    SetEnv GIT_HTTP_EXPORT_ALL
    ScriptAlias /git/ /usr/local/libexec/git-core/git-http-backend/
 
    <Location /git>
        ### authentification required for external users
        AuthUserFile /usr/local/etc/apache22/auth-passwd
        AuthType Basic
        AuthName "Private Git Access"
        Require valid-user
        Order allow,deny
 
        # Allow all from LAN, but require a password from outside
        Allow from 192.168.0.0/24
        Satisfy any
    </Location>
</VirtualHost>

Das Problem ist jetzt aber, dass dies ueber die Location definiert wird und dementsprechend auf alle vHosts zu trifft. Und ich kann via shell auf alle moeglichen domains drauf zugreifen
Code:
git clone mydomain.de/git/<projectname>
git clone a.mydomain.de/git/<projectname>
git clone b.mydomain.de/git/<projectname>
...

Ich haette den Zugriff aber gerne nur ueber den definierten ServerName beschraenkt.
Also nur dass es so funktioniert:
Code:
git clone git.devel.mydomain.de/git/<projectname>

Kann ich das irgendwie bewerkstelligen?
 
Gibt es einen Grund der gegen SSH als Transportprotokoll spricht? Ich bin mit gitolite bis jetzt sehr zufrieden.
 
Ich glaub mein Problem hat sich auch grad geloest. Ich hatte der Einfachheit halber einfach die HTTP conf gepostet, obwohl das ganze HTTPS ist. Und fuer https hatte ich kein namebased virtual host aktiviert, darum wurden alle anderen https vhosts automatisch mit dem ersten ueberschrieben.


Gibt es einen Grund der gegen SSH als Transportprotokoll spricht? Ich bin mit gitolite bis jetzt sehr zufrieden.

Eigentlich nur der, dass ich mir das noch nicht richtig angekuckt habe und ich mit dem Location filter von apache auch fuer jedes git project ein eigenen user/usergroup zuordnen kann.

Ich weiss jetzt nicht inwiefern ich mit gitolite user schoen granular mit rechten versehen kann.
 
Gitolite identifiziert Nutzer über ihren öffentlichen SSH Schlüssel. Nutzer könnten zu Gruppen zusammengefasst werden. Pro Repo können Nutzer/Gruppen mit Rechten (R/W/W+) versehen werden.
 
Hmm, ich weiss nicht ganz ob das fuer mein jetziges Setup geeignet ist, weil ich die Apache authentifizierung nach ldap migrieren wollte.

Kann ich denn mit gitolite auch die nutzer via ldap zuordnen?
 
Zurück
Oben