কেবলমাত্র নির্দিষ্ট রেপোর জন্য আমি কীভাবে GIT_SSL_NO_VERIFY সেট করব?


283

আমাকে যথাযথ শংসাপত্র ছাড়াই গিট সার্ভার ব্যবহার করতে হবে, তবে আমি তা করতে চাই না

env GIT_SSL_NO_VERIFY=true git command

প্রতিবার আমি গিট অপারেশন করি। তবে আমি অন্যান্য গিট সংগ্রহস্থলগুলির জন্য এসএসএল সক্ষম রাখতেও চাই। এই স্থানীয় একটি একক রেপো করার উপায় আছে?



f15ijp.com/2012/08/… আমি খুঁজে পেয়েছি সেরা সমাধানগুলির মধ্যে একটি
বিকাশ এতাগী

উত্তর:


540

আপনি করতে পারেন

git config http.sslVerify false

আপনার নির্দিষ্ট রেপোতে কেবলমাত্র সেই রেপোর জন্য এসএসএল শংসাপত্র পরীক্ষা করা অক্ষম করতে।


54
git config --global http.ssl "মিথ্যা"
যাচাই করুন

24
- গ্লোবালটি ব্যবহার করা উচিত নয় কারণ ওপিতে বিশেষভাবে অনুরোধ করা হয়েছে যে তিনি কেবল নির্দিষ্ট স্টোরের জন্য এটি চান।
কান্নান একনাথ

9
দ্রষ্টব্য: --globalকোনও রেপো এখনও চেক আউট না করা অবস্থায় IS বিকল্পের প্রয়োজন বলে মনে হচ্ছে (স্থানীয়ভাবে উপস্থিত নেই এমন একটি রেপোর জন্য বিকল্পগুলি সেট করতে পারে না)। যে কোনও একটি পরে সর্বদা এটি চালু করতে পারে।
জেমস উইলকিন্স

2
আমি সম্পাদনাটি রোলব্যাক করেছি, যেহেতু বিশেষত প্রশ্নটি এই প্লাসটির জন্য বিশেষভাবে জিজ্ঞাসা করে নি, সুরক্ষার কারণে বিশ্বব্যাপী এটি অক্ষম করা খারাপ ধারণা।
Étienne

2
উপরের মত একই কারণে আমি আবার সম্পাদনাটি রোলব্যাক করেছি। এই প্রশ্নটি একটি নির্দিষ্ট রেপো সম্পর্কে। আপনি যদি সমস্ত ভাণ্ডারগুলির জন্য উত্তর চান তবে এটি পৃথক প্রশ্ন হওয়া উচিত।
ক্যালিমো

121

আপনি নিম্নলিখিত হিসাবে করতে পারেন

একক রেপুর জন্য

git config http.sslVerify false

সব রেপুর জন্য

git config --global http.sslVerify false

7
এটি সমস্ত সংগ্রহস্থলের জন্য এসএসএল যাচাইকরণ অক্ষম করবে। মূল প্রশ্নটি এটিকে একটি একক ভাণ্ডারে স্থানীয় করার বিষয়ে ছিল।
Gwynne রাসকিন্ড

4
কেন আপনি বিশ্বে আদৌ ব্যবহার করছেন? স্থানীয় সংগ্রহস্থলের এটির প্রয়োজন নেই, এবং ব্যবহারকারীর কনফিগারেশনটি $ HOM এ রয়েছে (এটি আপনার সিস্টেমে যা আছে) তাই এটির জন্য সুডোরও দরকার নেই।
মিস্পল

@ পার্থিয়ানশট যদি তারা প্রশাসক ব্যবহারকারী না হন তবে তারা কীভাবে এটিকে সুডো ব্যবহার করতে পারবেন?
তিরুমালাই মুরগান

1
@ তিরুমালাইমুরুগান আপনি এখনই গুরুতর? sudoযখন আপনার আসলে কিছু করার জন্য মূল প্রয়োজন তখনই ব্যবহার করা উচিত । নতুন সফ্টওয়্যার ইনস্টল করা, গুরুত্বপূর্ণ সিস্টেম ফাইলগুলি সংশোধন করা, ড্রাইভগুলি পুনরায় ফর্ম্যাট করা, নেটওয়ার্কটিকে পুনরায় কনফিগার করা, পরিষেবাদি পরিচালনা করা ... কিছু করার জন্য তার রুট দরকার বোঝাতে এই লোকটির প্রশ্নের কোনও কিছুই ছিল না। আপনি যদি কোনও প্রশাসক হন তবে আপনার বেশিরভাগ কমান্ড চালানো উচিত those সেই আদেশগুলি সহ যা আপনার কনফিগারেশন পরিবর্তন করে-বেশিরভাগ সময় sudo ছাড়াই।
পার্থিয়ান শট

1
@ হলসয়ইডুফেলিজনাভিদাদ, যখন ওপি "সমস্ত রেপোর জন্য" বলেছিল, "ওপির অর্থ" এই ব্যবহারকারীর সমস্ত কম্পিউটার, "কম্পিউটারে সমস্ত রেপো নয়"।
vy32

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
antongorodezkiy

1
আপনার যদি .gitconfig এ অনুমতি অস্বীকার করা থাকে তবে আপনার সিস্টেমে মারাত্মকভাবে স্কিপ * এড রয়েছে। আপনার OME হোমটি আপনার কাছে উপলভ্য হওয়া উচিত (যা যেখানে .gitconfig হওয়া উচিত, তা উচিত নয়?)।
মিস্পল

এটি আসলে আমার সার্ভার নয়। তবে যাইহোক আপনাকে ধন্যবাদ। এবং আমি ত্রুটি বার্তা থেকে পথ সরিয়েছি, আসলে সেই সার্ভারে গিটটি কোথাও .gitconfig অ্যাক্সেস করার চেষ্টা করছে/var/www/...
antongorodezkiy

এই উত্তরের বিকল্পগুলি সম্পর্কে কিছু দুর্দান্ত ব্যাখ্যা রয়েছে। stackoverflow.com/a/11622001
dragon788

2
GIT_SSL_NO_VERIFY = সত্য
ইটেক

11

বিশেষত যদি আপনার পুনরাবৃত্ত ক্লোন প্রয়োজন

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

10

আপনি যদি উইন্ডোজ মেশিনে থাকেন এবং গিট ইনস্টল করেন তবে আপনি নীচের পদক্ষেপগুলি চেষ্টা করতে পারেন:

  1. গিট ইনস্টলেশনের ফোল্ডারে যান, উদাহরণস্বরূপ: সি: \ প্রোগ্রাম ফাইল (x86) it গিট \ ইত্যাদি
  2. ফাইলটি সম্পাদনা করুন: gitconfig
  3. [Http] বিভাগের অধীনে , লাইনটি যুক্ত করুন: sslVerify = মিথ্যা

    [http]
      sslVerify = false
    

1
এটি উপরের প্রশ্নেরও মিলছে না যেখানে তিনি বলেছেন যে তিনি অন্যান্য ভান্ডারগুলিকে প্রভাবিত করতে চান না।
bryanmac

এবং যখন আপনি গিট কমান্ডগুলি পরিচালনা করতে পারবেন না এটি সত্যিই সহায়ক! (ig উইন্ডোজ ভার্চুয়াল মেশিনে সোর্সট্রি থাকা এবং একটি ইউএনসি পাথের মধ্যে src ফোল্ডার স্থাপন করা যাতে অন্তর্নির্মিত যাদুবিদ্যার টার্মিনালটি স্বীকৃতি দিতে পারে না!
ড্যানরাহ

1
THX, এটি কাজ করেছে, কোনওভাবে কমান্ড লাইন ফিক্স কাজ করছে না।
Nrj

কচ্ছপ ব্যবহারকারীদের জন্য, আপনি একটি কনটেক্সট-নির্দিষ্ট সেটিংস আপডেট করে এবং কেবল স্থানীয় সম্পাদনা করার বিকল্পটি নির্বাচন করে স্থানীয় কনফিগার ফাইলে এই বিভাগটি সম্পাদনা করতে পারেন
স্টিভ টাউনসেন্ড

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

এইভাবে আপনার আর এসএসএল ত্রুটি থাকবে না এবং (সাধারণত) স্ব-স্বাক্ষরিত শংসাপত্রটি বৈধতা দেবে। এটি যাওয়ার সর্বোত্তম উপায়, কারণ এটি আপনাকে মধ্য-মধ্যবর্তী আক্রমণ থেকে রক্ষা করে। যখন আপনি কেবল এসএসএল যাচাইকরণ অক্ষম করবেন আপনি এই ধরণের আক্রমণে ঝুঁকির মধ্যে পড়ে।

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


5

একাধিক সংগ্রহস্থল হোস্ট করার জন্য একটি গিট সার্ভারের জন্য যদি আপনাকে এসএসএল চেকগুলি অক্ষম করতে হয়, আপনি চালাতে পারেন:

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স্পষ্টভাবে জিজ্ঞাসা করেছিল
মালাত

0

লিনাক্স-এ, আপনি যদি গিট সংগ্রহস্থল ফোল্ডারের ভিতরে কল করেন:

git config http.sslVerify false

যোগ করবে sslVerify = falseমধ্যে [http]বিভাগে configফাইল .gitফোল্ডারের, যা সমাধান হতে পারে, আপনার সাথে নিজে এই যোগ করতে চান তবে nano .git/config:

...
[http]
  sslVerify = false
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.