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.