Ich muss einen Git-Server ohne ordnungsgemäße Zertifikate verwenden, möchte dies aber nicht
env GIT_SSL_NO_VERIFY=true git command
jedes Mal mache ich eine Git-Operation. Ich möchte aber auch SSL für andere Git-Repositorys aktiviert lassen. Gibt es eine Möglichkeit, dieses Lokal zu einem einzigen Repo zu machen?
Antworten:
Du kannst tun
in Ihrem spezifischen Repo, um die SSL-Zertifikatprüfung nur für dieses Repo zu deaktivieren.
quelle
--global
Option wird anscheinend benötigt, wenn ein Repo noch NICHT ausgecheckt ist (Optionen für ein Repo, das lokal noch nicht vorhanden ist, können nicht festgelegt werden). Man kann es danach immer wieder einschalten.Sie können wie folgt vorgehen
Für ein einzelnes Repo
Für alle Repo
quelle
sudo
sollte nur verwendet werden, wenn Sie tatsächlich root benötigen , um etwas zu tun. Wie die Installation neuer Software, das Ändern wichtiger Systemdateien, das Neuformatieren von Laufwerken, das Neukonfigurieren des Netzwerks, das Verwalten von Diensten ... Die Frage dieses Mannes enthielt nichts, was darauf hindeuten könnte, dass er root brauchte, um etwas zu tun. Wenn Sie ein Administrator sind, sollten Sie die meisten Ihrer Befehle - einschließlich der Befehle, die Ihre Konfiguration ändern - die meiste Zeit ohne sudo ausführen.Wie das, was Thirumalai gesagt hat, aber innerhalb des geklonten Repositorys und ohne
--global
. DhGIT_SSL_NO_VERIFY=true git clone https://url
cd <directory-of-the-clone>
git config http.sslVerify false
quelle
could not lock global config file .gitconfig: Permission denied
/var/www/...
Insbesondere, wenn Sie einen rekursiven Klon benötigen
quelle
Wenn Sie sich auf einem Windows-Computer befinden und Git installiert haben, können Sie die folgenden Schritte ausführen:
Unter dem [http] Abschnitt, fügen Sie die Zeile: sslVerify = false
quelle
Es gibt eine einfache Möglichkeit, GIT so zu konfigurieren, dass Ihr Server richtig gehandhabt wird. Fügen Sie einfach einen bestimmten http-Abschnitt für Ihren Git-Server hinzu und geben Sie an, welchem Zertifikat (Base64-codiert) vertraut werden soll:
~ / .gitconfig
Auf diese Weise haben Sie keine SSL-Fehler mehr und validieren das (normalerweise) selbstsignierte Zertifikat. Dies ist der beste Weg, da er Sie vor Man-in-the-Middle-Angriffen schützt. Wenn Sie nur die SSL-Überprüfung deaktivieren, sind Sie für diese Art von Angriffen anfällig.
https://git-scm.com/docs/git-config#git-config-httplturlgt
quelle
Wenn Sie SSL-Prüfungen für einen Git-Server deaktivieren müssen, auf dem sich mehrere Repositorys befinden, können Sie Folgendes ausführen:
(Wenn Sie immer noch git <v1.8.5 verwenden, führen Sie aus
git config --global http.https://my.bad.server.sslVerify false
)Erläuterungen aus der Dokumentation, in der sich der Befehl am Ende befindet, zeigen den
.gitconfig
Inhalt wie folgt :Zertifikatsprüfungen für diesen Server werden unabhängig vom Repository ignoriert.
Sie haben auch einige Erklärungen im Code
quelle
Das funktioniert bei mir:
quelle
Diese Frage taucht immer wieder auf und ich habe noch kein zufriedenstellendes Ergebnis gefunden. Hier ist, was für mich funktioniert hat (basierend auf einer vorherigen Antwort https://stackoverflow.com/a/52706362/1806760 , die nicht funktioniert):
Mein Server ist
https://gitlab.dev
über ein selbstsigniertes Zertifikat.Erster Lauf
git config --system --edit
(von einer erhöhten Eingabeaufforderung, wechseln Sie--system
zu ,--global
wenn Sie es nur für Ihre Benutzer tun wollen), dann fügen Sie den folgenden Code - Schnipsel nach allen vorherigen[http]
Abschnitten:Überprüfen Sie dann, ob Sie alles richtig gemacht haben:
quelle
Wenn Sie für Windows eine globale Konfiguration wünschen, führen Sie diese aus
quelle
specific repos
ausdrücklich umWenn Sie dies unter Linux im Git-Repository-Ordner aufrufen:
Dies wird
sslVerify = false
im[http]
Abschnitt derconfig
Datei im.git
Ordner hinzugefügt , der auch die Lösung sein kann, wenn Sie dies manuell hinzufügen möchten mitnano .git/config
:quelle