Kann ich "deaktivieren" git-clone über http?
Bin ich mit git zu verwalten, ein winziges Projekt. Ich habe seit der Durchführung aller meiner Transaktionen (clone, push, pull, etc.) über SSH, aber vor kurzem lief der git-update-server-info, weil ich wollte, zu Experimentieren mit fließendem git-clone über http. Es hat Super geklappt. Cool. Jetzt merke ich aber, dass jeder kann mein Klon-repository über http ohne Anmeldeinformationen. Ich bin mir vage bewusst einzurichten, der die http-Authentifizierung durch gitosis, aber das ist wirklich nicht das, was ich will. Am Liebsten würde ich Sie einfach deaktivieren Sie die http-Klonen komplett.
Gibt es eine Möglichkeit, ich kann sagen, git, dass nur Transaktionen über ssh? Oder kann ich das rückgängig machen was ich getan habe, wenn ich lief git-update-server-info zu aktivieren Sie das Klonen-über-http in den ersten Platz?
- Mit Git 2.12 (Q1 2017), haben Sie
git config protocol.<name>.allow ...
. Siehe meine Antwort unten
Du musst angemeldet sein, um einen Kommentar abzugeben.
Git-repository verfügbar über HTTP-transport, es muss "exportiert" werden, indem (alle) web-server. Wenn Ihr repository (um genauer zu sein, seine
.git
- Verzeichnis) von außen sichtbar in einem web-browser, dann kann es geklont werden oder abgeholt anonym über das HTTP-Protokoll.git update-server-info
wird verwendet, um zusätzliche Hilfs-Helfer-Informationen (.git/objects/info/packs
und.git/info/refs
) für Klon (oder Holen), um zu wissen, was verfügbar ist.Also, was Sie tun müssen, ist, um entweder entfernen Sie die zwei Dateien (
.git/objects/info/packs
und.git/info/refs
), oder einfach es so machen das repository ist nicht verfügbar via web, vielleicht durch ändern von Berechtigungen in einer solchen Weise, dass Benutzer, welche web-server läuft als (in der Regel 'niemand' oder 'www' oder 'apache') keinen Zugriff auf.git
repository. Oder konfigurieren web-server, so dass es nicht exportieren (sichtbar machen) repository.Wird das HTTP-Protokoll (derzeit) sogenannte "dumb" - Protokoll, was bedeutet, dass es bietet die Dateien so wie Sie ist, und Zugriff auf die Steuerung erfolgt mit a [dumm] server in dieser Instanz von web server, den Sie verwenden (oder Dateisystem).
Ich denke, dass das repository nicht exportiert web-server, so dass Sie nicht haben nichts zu befürchten: das repository ist nicht verfügbar über HTTP.
Beachten Sie, dass es Zitat gewohnt für Git-repositories haben nicht authentifizierte anonyme nur-lese-Zugriff, und eine Authentifizierung nur für das schreiben von repository-also pushen (zumindest für open-source-Projekte)
6 bis 8 Jahren später, Git 2.12 (Q1 2017) wird vorschlagen, eine Konfiguration zu erlauben oder deaktivieren Sie ein Protokoll von Git.
Sehen commit abcbdc0 (14 Dec 2016) von Jeff King (
peff
).Sehen commit a768a02, commit aeae4db, commit f1762d7, commit f962ddf, commit 85e4205 (14 Dez 2016) von Brandon Williams (
mbrandonw
).(Zusammengefasst von Junio C Hamano --
gitster
-- in commit 9d540e9, 27 Dec 2016)Dies ermöglicht eine feiner Granulierte Kontrolle darüber, was Protokolle sind zulässig für den Transport während der Klon/fetch/push aktiviert hat, über eine neue Konfiguration
Mechanismus.
git config
umfasst nun:Löschen
.git/objects/info/packs
und.git/info/refs