Https সার্ভারগুলিতে সংযোগ করার সময় "ত্রুটি: gnotls_handshake () ব্যর্থ হয়েছে"


62

আমি যখন কোনও এইচটিটিপিএস সার্ভারের সাথে সংযোগ দেওয়ার চেষ্টা করি তখন gitএটি নিম্নলিখিত ত্রুটিটি দেয়:

error: gnutls_handshake() failed: A TLS packet with unexpected length was received. while accessing ...
fatal: HTTP request failed

আমি মনে করি যে সম্পর্কিত হতে gnutls_handshakeপারে এমন কিছু প্যাকেজগুলি ভেঙে গেছে। সুতরাং, আমি সেগুলি পুনরায় ইনস্টল করতে চাই।

এই ত্রুটিগুলির সাথে কোন প্যাকেজ সম্পর্কিত হতে পারে? বা আমি এই ধরণের ত্রুটিটি কীভাবে ঠিক করব?


2
এই অন্যান্য প্রশ্ন সাহায্য করতে পারে।
— ক্রিস্টোফার

1
আমার ক্ষেত্রে এটি একটি সাধারণ প্রমাণীকরণের সার্ভার ছিল, যেখানে আমাদের ইন্টারনেট ব্যবহারের আগে লগইন করতে হয়েছিল, যা আসছিল। আমাকে প্রথমে সেখানে লগইন করতে হয়েছিল এবং তারপরে ত্রুটিটি অদৃশ্য হয়ে গেছে।
— সাহিল সিং 15

উত্তর:


93

সমস্যার কারণ, এটি gnutlsপ্যাকেজ ছিল । এটি একটি প্রক্সি পিছনে অদ্ভুত কাজ করে। তবে opensslদুর্বল নেটওয়ার্কেও ঠিক কাজ করছে। সুতরাং workaround হয় যে আমাদের gitসাথে সংকলন করা উচিত openssl। এটি করতে, নিম্নলিখিত কমান্ডগুলি চালনা করুন:

sudo apt-get update
sudo apt-get install build-essential fakeroot dpkg-dev
sudo apt-get build-dep git
mkdir ~/git-openssl
cd ~/git-openssl
apt-get source git
dpkg-source -x git_1.7.9.5-1.dsc
cd git-1.7.9.5

( 1.7.9.5আপনার সিস্টেমে গিটের আসল সংস্করণটি প্রতিস্থাপন করতে ভুলবেন না))

তারপরে debian/controlফাইল সম্পাদনা করুন (কমান্ডটি চালান gksu gedit debian/control:) এবং এর libcurl4-gnutls-devসাথে সমস্ত দৃষ্টান্ত প্রতিস্থাপন করুন libcurl4-openssl-dev।

তারপরে প্যাকেজটি তৈরি করুন (যদি এটি পরীক্ষায় ব্যর্থ হয় তবে আপনি TEST=testফাইলটি থেকে লাইনটি সরাতে পারেন debian/rules):

sudo apt-get install libcurl4-openssl-dev
sudo dpkg-buildpackage -rfakeroot -b

নতুন প্যাকেজ ইনস্টল করুন:

মধ্যে i386: sudo dpkg -i ../git_1.7.9.5-1_i386.deb

, x86_64: sudo dpkg -i ../git_1.7.9.5-1_amd64.deb


এখান থেকে অনুপ্রাণিত: https://github.com/xmendez/wfuzz/wiki/PyCurlSSLBug


2
উবুন্টু 14.04 এ আপগ্রেড করার পরেও এই একই সমস্যা ছিল। এই সমাধান দুর্দান্ত কাজ!
— উল্টা

1
লিনাক্স মিন্ট 16 নিয়ে কাজ করেছেন, আপনাকে "সফ্টওয়্যার উত্স" এ যেতে হবে এবং অফিসিয়াল সংগ্রহস্থলগুলির উত্স সক্ষম করতে হবে। সংকলনের আগে আপনাকে অবশ্যই libcurl4-gnutls-dev আনইনস্টল করতে হবে এবং libcurl4-openssl-dev দ্বারা প্রতিস্থাপন করতে হবে।
— গিলিয়াম পেরেট

1
বিস্মিত মনে সাহায্য করতে পারে। যদি আপনি কোনও রেপোজিটরি ডাউনলোড করতে 'রেপো' ব্যবহার করেন (অ্যান্ড্রয়েড উত্স কোডটি বলুন) এবং গল্টস-হ্যান্ডশেক সমস্যাটি দেখতে পান, তবে নিমায়বার উত্তরটি কাজ করে। রেপো হ'ল একটি স্ক্রিপ্ট যা গিটের উপর নির্ভর করে তাই আপনার ভাল হওয়া উচিত। আমার উবুন্টুতে 14.04
— lts- এ ম্যাজিকের

2
মানুষের (মূলত আমার নিজের) বিবেকহীনতার জন্য শেলসক্রিপ্ট। github.com/SonOfLysender/git-openssl- Shellscript
— পল নেলসন বেকার

4
বিল্ড স্টেপের পরীক্ষাগুলি সত্যই দীর্ঘ সময় নেয়। যদি আপনি গিট রক্ষণাবেক্ষণকারীদের উপর বিশ্বাস রাখেন তবে আমি উচ্চতর নির্দেশাবলী অনুসরণ করার পরামর্শ দিচ্ছি যাতে টিবিএসটি = টেস্ট লাইনটি ডিবিয়ান / বিধি থেকে সরিয়ে এড়িয়ে যায়।
— এলি আলবার্ট

9

আমার জন্য এটি শেষ হয়েছিল যে এসএসএল শংসাপত্রটি স্ব-স্বাক্ষরিত। একবার চেষ্টা করে দেখুন

git config --global http.sslVerify false


9
এটি একটি ভয়ানক ধারণা; এটি ম্যান-ইন-মধ্য-আক্রমণের থেকে আপনার সুরক্ষা সরিয়ে প্রতিটি টিএলএস (এসএসএল) সংযোগের জন্য সমস্ত প্রমাণীকরণ অক্ষম করেgit ।
— কর্ট জে সাম্পসন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.