मैं केवल विशिष्ट रेपो के लिए GIT_SSL_NO_VERIFY कैसे सेट करूं?


283

मुझे उचित प्रमाणपत्र के बिना git सर्वर का उपयोग करना होगा, लेकिन मैं ऐसा नहीं करना चाहता

env GIT_SSL_NO_VERIFY=true git command

हर बार मैं एक गिट ऑपरेशन करता हूं। लेकिन मैं अन्य git रिपॉजिटरी के लिए SSL सक्षम को भी छोड़ना चाहूंगा। क्या इस स्थानीय को एकल रेपो बनाने का कोई तरीका है?



f15ijp.com/2012/08/… मुझे मिले सबसे अच्छे समाधानों में से एक है
vikas etagi

जवाबों:


540

तुम कर सकते हो

git config http.sslVerify false

केवल उस रेपो के लिए एसएसएल प्रमाणपत्र जाँच को अक्षम करने के लिए अपने विशिष्ट रेपो में।


54
git config --global http.sslVerify "झूठा"
roothahn

24
--Global का उपयोग नहीं किया जाना चाहिए क्योंकि ओपी ने विशेष रूप से अनुरोध किया है कि वह केवल विशिष्ट रिपॉजिट के लिए चाहता है।
कन्नन एकनाथ

9
नोट: लगता है कि --globalविकल्प की आवश्यकता तब होती है जब एक रेपो की अभी तक जाँच नहीं की गई है (रेपो के लिए विकल्प सेट नहीं किया जा सकता है जो अभी तक स्थानीय रूप से मौजूद नहीं है)। कोई भी इसे हमेशा चालू कर सकता है।
जेम्स विल्किंस

2
मैंने एडिट को रोलबैक किया, क्योंकि प्रश्न विशेष रूप से इस प्लस के लिए नहीं पूछा गया था क्योंकि सुरक्षा कारणों से इसे विश्व स्तर पर अक्षम करना एक बुरा विचार है।
Étienne

2
मैंने ऊपर के समान कारणों के लिए फिर से एडिटबैक किया। यह प्रश्न एक विशिष्ट रेपो के बारे में है। यदि आप सभी रेपो का जवाब चाहते हैं, तो यह एक अलग प्रश्न होना चाहिए।
कैलिमो

121

आप निम्नानुसार कर सकते हैं

एक एकल रेपो के लिए

git config http.sslVerify false

सभी रेपो के लिए

git config --global http.sslVerify false

7
यह सभी रिपॉजिटरी के लिए एसएसएल सत्यापन को अक्षम कर देगा। मूल प्रश्न इसे एकल भंडार में स्थानीय बनाने के बारे में था।
ग्वेन रस्किन

4
क्यों दुनिया में आप sudo का उपयोग कर रहे हैं? स्थानीय रिपॉजिटरी को इसकी आवश्यकता नहीं है, और उपयोगकर्ता कॉन्फ़िगरेशन $ HOME (जो भी आपके सिस्टम पर है) में है, इसलिए इसे sudo की भी आवश्यकता नहीं है।
छल करें

@ParthianShot अगर वे व्यवस्थापक उपयोगकर्ता नहीं हैं, तो वे आउट सुडो के साथ इसका उपयोग कैसे कर सकते हैं?
थिरुमलाई मुरुगन

1
@Thirumalaimurugan क्या आप अभी गंभीर हैं? sudoकेवल तब उपयोग किया जाना चाहिए जब आपको वास्तव में कुछ करने के लिए रूट की आवश्यकता हो। नए सॉफ़्टवेयर को स्थापित करने की तरह, महत्वपूर्ण सिस्टम फ़ाइलों को संशोधित करना, ड्राइव को सुधारना, नेटवर्क को फिर से संगठित करना, सेवाओं का प्रबंधन करना ... इस लड़के के सवाल में कुछ भी नहीं था कि उसे कुछ भी करने के लिए रूट की आवश्यकता थी। यदि आप एक प्रशासक हैं, तो आपको अपने अधिकांश कमांड चलाने चाहिए- जिसमें उन कमांड्स भी शामिल हैं जो आपके कॉन्फ़िगरेशन को बदल देते हैं- अधिकांश समय बिना सूडो के।
पार्थियन शॉट

1
@HolaSoyEduFelizNavidad, जब ओपी ने कहा कि "सभी रेपो के लिए," ओपी का अर्थ है "इस उपयोगकर्ता के लिए सभी रिपोज," नहीं "सभी रिपोज कंप्यूटर पर।"
v3232 14

98

जैसे थिरुमलाई ने कहा, लेकिन क्लोन रिपॉजिटरी के अंदर और बिना --global। अर्थात,

  1. GIT_SSL_NO_VERIFY=true git clone https://url
  2. cd <directory-of-the-clone>
  3. git config http.sslVerify false

मामलों के लिए अच्छा समाधान जब आपcould not lock global config file .gitconfig: Permission denied
एंटीगोरोडज़ेकी

1
यदि आपके पास अनुमति पर अस्वीकृति है। तो वह आपके सिस्टम के साथ कुछ गंभीर रूप से sk * ed है। आपका $ HOME आपको उपलब्ध होना चाहिए (जो कि .itconfig होना चाहिए, वह नहीं होना चाहिए?)।
छल करें

यह वास्तव में मेरा सर्वर नहीं है। लेकिन धन्यवाद वैसे भी। और मैंने एरर मैसेज से रास्ता निकाल लिया, वास्तव में उस सर्वर पर git एक्सेस करने की कोशिश कर रहा है। कहीं कहीं/var/www/...
antongorodezkiy

इस जवाब में विकल्पों पर कुछ महान स्पष्टीकरण भी हैं। stackoverflow.com/a/11622001
ड्रैगन 788

2
निर्यात GIT_SSL_NO_VERIFY = true
ETech

11

विशेष रूप से अगर आपको पुनरावर्ती क्लोन की आवश्यकता है

GIT_SSL_NO_VERIFY=true git clone --recursive https://github.com/xx/xx.git

10

यदि आप Windows मशीन पर हैं और Git स्थापित है, तो आप नीचे दिए गए चरणों को आजमा सकते हैं:

  1. Git इंस्टॉलेशन के फ़ोल्डर में जाएं, उदा: C: \ Program Files (x86) \ Git \ etc
  2. फ़ाइल संपादित करें: gitconfig
  3. [Http] अनुभाग के तहत , लाइन जोड़ें: sslVerify = false

    [http]
      sslVerify = false
    

1
यह भी ऊपर के प्रश्न को पूरा नहीं करता है जहां वह कहता है कि वह अन्य रिपोज को प्रभावित नहीं करना चाहता है।
bryanmac

और यह वास्तव में उपयोगी है जब आप git कमांड नहीं चला सकते हैं! (एक विंडोज़ वर्चुअल मशीन पर सॉरसेट्री होने और एक UNC पथ में src फोल्डर रखने के लिए जिसमें अंतर्निर्मित सॉर्केट्री टर्मिनल को नहीं पहचाना जा सकता है!
danrah

1
thx, यह काम किया, किसी तरह कमांड लाइन फिक्स काम नहीं कर रहा था।
नृज

TortoiseGit उपयोगकर्ताओं के लिए, आप एक संदर्भ-विशिष्ट सेटिंग अद्यतन कर और केवल स्थानीय संपादित करने के विकल्प का चयन करके इस अनुभाग को स्थानीय कॉन्फ़िगरेशन फ़ाइल में संपादित कर सकते हैं
स्टीव टाउनसेंड

5

अपने सर्वर को सही तरीके से संभालने के लिए जीआईटी को कॉन्फ़िगर करने का एक आसान तरीका है। बस अपने जीआईटी सर्वर के लिए एक विशिष्ट http अनुभाग जोड़ें और निर्दिष्ट करें कि कौन सा प्रमाण पत्र (बेस 64 एनकोडेड) विश्वास करने के लिए:

~ / .Gitconfig

[http "https://repo.your-server.com"]
# windows path use double back slashes
#  sslCaInfo = C:\\Users\\<user>\\repo.your-server.com.cer
# unix path to certificate (Base64 encoded)
sslCaInfo = /home/<user>/repo.your-server.com.cer

इस तरह से आपके पास अधिक एसएसएल त्रुटियां नहीं होंगी और आमतौर पर स्व-हस्ताक्षरित प्रमाण पत्र मान्य होगा। यह जाने का सबसे अच्छा तरीका है, क्योंकि यह आपको बीच-बीच में होने वाले हमलों से बचाता है। जब आप सिर्फ ssl सत्यापन अक्षम करते हैं तो आप इस प्रकार के हमलों के प्रति संवेदनशील होते हैं।

https://git-scm.com/docs/git-config#git-config-httplturlgt


5

यदि आपको कई रिपॉजिटरी की मेजबानी करने वाले एक git सर्वर के लिए SSL चेक को निष्क्रिय करना है, तो आप चला सकते हैं:

git config --bool --get-urlmatch http.sslverify https://my.bad.server false

(यदि आप अभी भी गिट <v1.8.5 का उपयोग करते हैं, तो दौड़ें git config --global http.https://my.bad.server.sslVerify false)

दस्तावेज़ीकरण से स्पष्टीकरण जहां कमांड अंत में है, इस .gitconfigतरह दिखने वाली सामग्री दिखाएं :

[http "https://my.bad.server"]
        sslVerify = false

यह इस सर्वर के लिए किसी भी प्रमाणपत्र जांच को अनदेखा करेगा, जो भी रिपॉजिटरी है।

आपके पास कोड में कुछ स्पष्टीकरण भी है


4

यह मेरे लिए काम करता है:

git init
git config --global http.sslVerify false
git clone https://myurl/myrepo.git

2

यह प्रश्न सामने आता रहता है और मुझे अभी तक कोई संतोषजनक परिणाम नहीं मिला है, इसलिए यहां मेरे लिए काम किया गया है (पिछले उत्तर के आधार पर https://stackoverflow.com/a/52706362/1806760 , जो काम नहीं कर रहा है):

मेरा सर्वर https://gitlab.devस्व-हस्ताक्षरित प्रमाण पत्र के साथ है।

पहला रन git config --system --edit(एक उन्नत कमांड प्रॉम्प्ट से, यदि आप इसे अपने उपयोगकर्ता के लिए करना चाहते हैं तो बदल --systemदें --global), तो किसी भी पिछले [http]अनुभाग के बाद निम्नलिखित स्निपेट डालें :

[http "https://gitlab.dev"]
        sslVerify = false

फिर जांचें कि क्या आपने सब कुछ सही ढंग से किया है:

> git config --type=bool --get-urlmatch http.sslVerify https://gitlab.dev
false

1

विंडोज़ के लिए, यदि आप ग्लोबल कॉन्फिगरेशन चाहते हैं, तो रन करें

git config --global http.sslVerify false

ओ पी के लिए कहा specific reposस्पष्ट रूप से
malat

0

लिनक्स पर, यदि आप इसे git रिपॉजिटरी फ़ोल्डर के अंदर कहते हैं:

git config http.sslVerify false

यह फ़ोल्डर में फ़ाइल sslVerify = falseके [http]अनुभाग में जोड़ देगा , जो समाधान भी हो सकता है, यदि आप इसे मैन्युअल रूप से जोड़ना चाहते हैं :config.gitnano .git/config

...
[http]
  sslVerify = false
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.